쿼리 표시줄에 MongoDB 필터 문서를 입력하면 지정된 기준과 일치하는 문서만 표시할 수 있습니다. 문서 쿼리에 대해 자세히 알아보려면 MongoDB 매뉴얼의 문서 쿼리를 참조하세요.
호환성
다음 환경에서 호스팅되는 배포에 대한 데이터를 쿼리할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: 구독 기반의 자체 관리형 MongoDB 버전입니다.
MongoDB Community: 소스 사용 가능하고, 무료로 사용할 수 있는 자체 관리형 MongoDB 버전
MongoDB Atlas에서 호스팅되는 배포서버의 데이터 쿼리에 대한 자세한 내용은 특정 문서 찾기를 참조하세요.
쿼리 필터 설정
Filter 필드 에서 중괄호 사이에 필터 문서 입력합니다. You can use all the MongoDB 쿼리 연산자 except the
$text연산자 and$expr연산자.예시
다음 필터는
title값이Jurassic Park인 문서를 반환합니다.{ "title": "Jurassic Park" } 쿼리를 실행하고 업데이트된 결과를 보려면 Find를 클릭합니다.
클릭하여 확대
참고
큰 정수 제한 사항
JavaScript 최대 정수 크기보다 큰 정수를 쿼리하려면 정수를 string 문자로 래핑하고 NumberLong() 생성자에 정수를 전달합니다.
예를 들어, number 값이 507550989629521900인 모든 문서를 찾으려면 이 쿼리 필터를 사용합니다.
{ "number" : NumberLong("507550989629521900") }
예시
이 페이지의 예시에서는 작은 예시 데이터세트를 사용합니다. 샘플 데이터를 MongoDB 배포로 가져오려면 다음 단계를 수행합니다.
다음 문서를 클립보드에 복사합니다:
[ { "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ] Compass에서 왼쪽 탐색 패널을 사용하여 데이터를 가져오려는 데이터베이스 및 컬렉션을 선택합니다.
Documents 탭을 클릭합니다.
Add Data 0}을 클릭하고 Insert Document을 선택합니다.
View 을 JSON(
{})으로 설정합니다.클립보드의 JSON 문서를 모달에 붙여넣습니다.
Insert를 클릭합니다.
참고
MongoDB 배포서버가 없거나 더 큰 샘플 데이터 세트를 쿼리하려는 경우, 샘플 데이터로 프리 티어 클러스터를 만드는 방법에 대한 지침은 Atlas 클러스터용 샘플 데이터를 참조하세요. 다음 예시 쿼리는 이 페이지에 제공된 샘플 문서를 필터링합니다.
단일 조건으로 일치
다음 쿼리 필터는 name 값이 "Andrea Le"인 모든 문서를 찾습니다.
{ name: "Andrea Le" }
쿼리는 다음 문서를 반환합니다:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
여러 조건으로 일치($and)
다음 쿼리 필터는 scores 배열이 75 값을 포함하며 name이 Greg Powell인 모든 문서를 찾습니다.
{ $and: [ { scores: 75, name: "Greg Powell" } ] }
쿼리는 다음 문서를 반환합니다:
{ "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } }
가능한 여러 조건으로 일치($또는)
다음 쿼리 필터는 $or 연산자를 사용하여 version이 4거나 name이 Andrea Le인 문서를 찾습니다.
{ $or: [ { version: 4 }, { name: "Andrea Le" } ] }
이 쿼리는 다음 문서를 반환합니다.
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
제외 적용에 따른 일치($not)
다음 쿼리 필터는 $not 연산자를 사용하여 name 필드 값이 "Andrea Le" 과 같지 않거나 name 필드가 존재하지 않는 모든 문서를 찾습니다.
{ name: { $not: { $eq: "Andrea Le" } } }
이 쿼리는 다음 문서를 반환합니다.
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
팁
논리적 쿼리 연산자의 전체 목록은 논리적 쿼리 연산자를 참조하세요.
비교 연산자와 일치
다음 쿼리 필터는 $lte 연산자를 사용하여 version이 4보다 작거나 같은 모든 문서를 찾습니다.
{ version: { $lte: 4 } }
이 쿼리는 다음 문서를 반환합니다.
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
팁
비교 연산자의 전체 목록은 쿼리 연산자 비교를 참조하세요.
날짜별 일치
다음 쿼리 필터는 $gt 연산자와 Date() 메서드를 사용하여 dateCreated 필드 값이 2000년 6월 22일 이후인 모든 문서를 찾습니다.
{ dateCreated: { $gt: new Date('2000-06-22') } }
이 쿼리는 다음 문서를 반환합니다.
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid": "5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
배열 조건별 일치
다음 쿼리 필터는 $elemMatch 연산자를 사용하여 scores 배열의 값 중 하나 이상이 80보다 크고 90보다 작은 모든 문서를 찾습니다.
{ scores: { $elemMatch: { $gt: 80, $lt: 90 } } }
scores 배열의 값 중 하나가 85이므로 쿼리는 다음 문서를 반환합니다.
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
더 많은 쿼리 예시는 MongoDB 매뉴얼의 문서 쿼리를 참조하세요.
하위 문자열로 일치
다음 쿼리 필터는 $regex 연산자를 사용하여 email 값에 "andrea_le"라는 용어가 포함된 모든 문서를 찾습니다.
{ email: { $regex: "andrea_le" } }
쿼리는 다음 문서를 반환합니다:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
내장된 필드별 일치
다음 쿼리 필터는 school.name 하위 필드가 "Northwestern"인 문서를 찾습니다.
{ "school.name": "Northwestern" }
쿼리는 다음 문서를 반환합니다:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
더 많은 쿼리 예시는 MongoDB 매뉴얼의 문서 쿼리를 참조하세요.
특정 필드 및 값으로 일치
문서 쿼리 와 일치시키려는 특정 필드 와 값이 포함되어 있는 경우 원하는 필드 마우스 오른쪽 버튼으로 클릭하고 드롭다운에서 Add to query 를 선택할 수 있습니다.

이렇게 하면 필드 및 해당 특정 값과 일치하는 절이 쿼리 줄에 추가됩니다. 앞의 예시 에서 Compass { runtime: 72 }와 일치하는 쿼리 절을 추가합니다.
쿼리 정의하지 않은 경우 Compass 쿼리 줄에 쿼리를 생성합니다.
쿼리 바에서 지원되는 데이터 유형
Compass 는 Filter mongosh MongoDB 확장 JSON BSON 데이터 유형의 표현 사용을 지원합니다.
예시
다음 필터는 start_date가 BSONDate 2017-05-01보다 큰 문서를 반환합니다.
{ "start_date": {$gt: new Date('2017-05-01')} }
start_date, $gt 비교 연산자 모두에 Date를 지정하면 Compass는 시간순으로 greater
than 비교를 수행하여 2017-05-01 보다 늦은 start_date 를 가진 문서를 반환합니다.
Date 유형 사양이 없으면 Compass 값을 시간순으로 비교하는 대신 start_dates 을 문자열로 사전순으로 비교합니다.
쿼리 지우기
쿼리 표시줄 및 쿼리 결과를 지우려면 Reset을 클릭하세요.
잘못된 UTF8 데이터가 있는 쿼리 컬렉션
잘못된 UTF8 문자가 포함된 데이터를 쿼리하거나 내보내려고 하면 다음의 오류 메시지가 표시됩니다.
Invalid UTF-8 string in BSON document.
이 데이터를 쿼리하거나 내보내려면 enableUtf8Validation URI 옵션을 false로 설정하여 UTF8 유효성 검사를 비활성화합니다.
경고
enableUtf8Validation=false로 데이터를 편집하면 데이터가 손실될 수 있습니다. 이 방법은 데이터를 쿼리하거나 내보낼 때만 사용할 수 있는 임시 해결 방법입니다.
다음 URI는 UTF8 유효성 검사를 비활성화합니다.
mongodb://localhost:27017/?enableUtf8Validation=false
참고
고급 연결 옵션에서 enableUtf8Validation을 선택하고 false를 입력하여 이 옵션을 비활성화할 수도 있습니다.
Compass 쿼리는 MongoDB 및 SQL 쿼리와 어떻게 비교되나요?
$filter는 SQL SELECT 문의 WHERE 절에 해당합니다.
예시
3,235개의 문서가 있습니다. Joe Bloggs가 작성한 모든 글을 보고 싶습니다.
- Compass 필터 옵션
{ author : { $eq : "Joe Bloggs" } } - MongoDB 집계
db.article.aggregate( { $match: { "author": "Joe Bloggs" } } ) - SQL
SELECT * FROM article WHERE author = "Joe Bloggs";
