데이터 쿼리
이 페이지의 내용
쿼리 표시줄에 MongoDB 필터 문서를 입력하면 지정된 기준과 일치하는 문서만 표시할 수 있습니다. 문서 쿼리에 대해 자세히 알아보려면 MongoDB 매뉴얼의 문서 쿼리를 참조하세요.
호환성
다음 환경에서 호스팅되는 배포에 대한 데이터를 쿼리할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: 구독 기반의 자체 관리형 MongoDB 버전입니다.
MongoDB Community: 소스 사용 가능하고, 무료로 사용할 수 있는 자체 관리형 MongoDB 버전
MongoDB Atlas에서 호스팅되는 배포서버의 데이터 쿼리에 대한 자세한 내용은 특정 문서 찾기를 참조하세요.
쿼리 필터 설정
예시
이 페이지의 예시에서는 작은 예시 데이터세트를 사용합니다. 샘플 데이터를 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 매뉴얼의 문서 쿼리를 참조하세요.
쿼리 바에서 지원되는 데이터 유형
Compass Filter는 MongoDB Extended JSON BSON 데이터 유형의 mongo
shell 모드를 사용할 수 있도록 지원합니다.
예시
다음 필터는 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는 값을 시간순으로 비교하는 대신 을 문자열로 사전순으로 비교합니다.
쿼리 지우기
쿼리 표시줄 및 쿼리 결과를 지우려면 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";