문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

문서 쿼리

이 페이지의 내용

  • 컬렉션에서 모든 문서 선택
  • 동등성 조건 지정
  • 쿼리 연산자를 사용하여 조건 지정
  • AND 조건 지정
  • OR 조건 지정
  • ANDOR 조건 지정
  • MongoDB Atlas로 문서 쿼리
  • 추가 쿼리 튜토리얼
  • 행동
  • 추가 메서드 및 옵션

다음 메서드를 사용하여 MongoDB에서 문서를 쿼리할 수 있습니다:

  • 프로그래밍 언어의 드라이버입니다.

  • MongoDB Atlas UI. 자세히 알아보려면 MongoDB Atlas로 문서 쿼리를 참조하세요.

  • MongoDB Compass


오른쪽 상단의 언어 선택 드롭다운 메뉴를 사용하여 다음 예제의 언어를 설정하거나 MongoDB Compass를 선택합니다.


이 작업은 다음 SQL 문에 해당하는 필터 조건자 {}를 사용합니다.

SELECT * FROM inventory

다음 예시에서는 inventory 컬렉션에서 status"D"와 동일한 모든 문서를 선택합니다.

이 작업은 다음 SQL 문에 해당하는 필터 조건자 { status: "D" }를 사용합니다.

SELECT * FROM inventory WHERE status = "D"

다음 예시에서는 inventory 컬렉션에서 status"A""D"와 동일한 모든 문서를 조회합니다.

참고

$or 연산자를 사용하여 이 쿼리를 표현할 수 있지만, 동일한 필드에 동등성 검사를 수행할 때에는 $or 연산자 대신 $in 연산자를 사용합니다.

이 작업은 다음 SQL 문에 해당하는 필터 조건자 { status: { $in: [ "A", "D" ] } }를 사용합니다.

SELECT * FROM inventory WHERE status in ("A", "D")

MongoDB 쿼리 연산자의 전체 목록은 쿼리 및 프로젝션 연산자 문서에서 확인 가능합니다.

복합 쿼리는 컬렉션의 문서에 포함된 하나 이상의 필드에 조건을 지정할 수 있습니다. 암시적으로, 논리 접속사 AND는 복합 쿼리의 절을 연결하여 쿼리가 컬렉션에서 모든 조건에 일치하는 문서를 선택하도록 합니다.

다음 예시에서는 inventory 컬렉션에서 status"A"같고 qty가 ($lt)30보다 작은 문서를 모두 조회합니다.

이 작업은 다음 SQL 문에 해당하는 필터 조건자 { status: "A", qty: { $lt: 30 } }를 사용합니다.

SELECT * FROM inventory WHERE status = "A" AND qty < 30

다른 MongoDB 비교 연산자는 비교 연산자에서 확인 가능합니다.

$or 연산자를 사용하면 논리 접속사 OR로 각 절을 연결하는 복합 쿼리를 지정하여 쿼리는 컬렉션에서 적어도 하나의 조건과 일치하는 문서를 선택합니다.

다음 예시에서는 컬렉션에서 status"A"와 같거나 qty($lt)30보다 작은 모든 문서를 검색합니다.

이 작업은 다음 SQL 문에 해당하는 필터 조건자 { $or: [ { status: 'A' }, { qty: { $lt: 30 } } ] }를 사용합니다.

SELECT * FROM inventory WHERE status = "A" OR qty < 30

참고

비교 연산자를 사용하는 쿼리에는 유형 괄호가 적용됩니다.

다음 예제에서 복합 쿼리 문서는 status"A"같고 qty가 ($lt) 30보다 작거나 또는 item이(가) p로 시작하는 조건 중 하나를 만족하는 모든 문서를 선택합니다.

이 작업이 이용하는 필터 술어

{
status: 'A',
$or: [
{ qty: { $lt: 30 } }, { item: { $regex: '^p' } }
]
}

는 다음 SQL 문에 해당합니다.

SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")

참고

MongoDB는 문자열 패턴 일치를 수행하기 위해 정규 표현식 $regex 쿼리를 지원합니다.

이 섹션의 예제에서는 샘플 영화 데이터 세트 를 사용합니다. 샘플 데이터 세트를 MongoDB Atlas 배포서버에 로드하는 방법을 알아보려면 샘플 데이터 로드를 참조하세요.

MongoDB Atlas의 쿼리에서 반환할 필드를 프로젝트하려면 다음 단계를 따르세요.

1
  1. MongoDB Atlas UI의 Database 사이드바에서 버튼을 클릭합니다.

  2. 샘플 데이터가 포함된 데이터베이스 배포서버의 경우 Browse Collections을 클릭합니다.

  3. 왼쪽 탐색 창에서 sample_mflix 데이터베이스를 선택합니다.

  4. movies 컬렉션을 선택합니다.

2

Filter 필드에 쿼리 필터 문서를 지정합니다. 쿼리 필터 문서는 쿼리 연산자를 사용하여 검색 조건을 지정합니다.

다음 쿼리 필터 문서를 Filter 검색 바에 복사합니다.

{ year: 1924 }
3

이 쿼리 필터는 sample_mflix.movies 컬렉션에서 year 필드가 1924와 일치하는 모든 문서를 반환합니다.

추가 쿼리 예시는 아래에서 확인 가능합니다.

버전 3.2에 새로 추가되었습니다.

복제본 세트 및 복제본 세트 샤드에 대한 읽기의 경우, 클라이언트는 읽기 고려를 통해 읽기에 대한 격리 수준을 선택할 수 있습니다. 자세한 내용은 Read Concern을 참조하십시오.

MongoDB 드라이버 또는 mongosh를 사용하여 찾기 작업을 실행하면 이 명령은 쿼리 결과를 관리하는 커서를 반환합니다. 쿼리 결과는 문서 배열로 반환되지 않습니다.

커서에서 문서를 반복하는 방법을 알아보려면 드라이버 설명서 를 참조하세요. mongosh 를 사용하는 경우 mongosh 에서 커서 반복하기를 참조하세요.

← Insert 메서드