Docs Menu
Docs Home
/
MongoDB Compass
/

데이터 쿼리

이 페이지의 내용

  • 호환성
  • 쿼리 필터 설정
  • 예시
  • 단일 조건으로 일치
  • 여러 조건으로 일치($and)
  • 가능한 여러 조건으로 일치($또는)
  • 제외 적용에 따른 일치($not)
  • 비교 연산자와 일치
  • 날짜별 일치
  • 배열 조건별 일치
  • 하위 문자열로 일치
  • 내장된 필드별 일치
  • 쿼리 바에서 지원되는 데이터 유형
  • 쿼리 지우기
  • 잘못된 UTF8 데이터가 있는 쿼리 컬렉션
  • Compass 쿼리는 MongoDB 및 SQL 쿼리와 어떻게 비교되나요?

쿼리 표시줄에 MongoDB 필터 문서를 입력하면 지정된 기준과 일치하는 문서만 표시할 수 있습니다. 문서 쿼리에 대해 자세히 알아보려면 MongoDB 매뉴얼의 문서 쿼리를 참조하세요.

다음 환경에서 호스팅되는 배포에 대한 데이터를 쿼리할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

  • MongoDB Enterprise: 구독 기반의 자체 관리형 MongoDB 버전입니다.

  • MongoDB Community: 소스 사용 가능하고, 무료로 사용할 수 있는 자체 관리형 MongoDB 버전

MongoDB Atlas에서 호스팅되는 배포서버의 데이터 쿼리에 대한 자세한 내용은 특정 문서 찾기를 참조하세요.

  1. Filter 필드에서 중괄호 사이에 필터 문서를 입력합니다. $text$expr 연산자를 제외한 MongoDB의 모든 쿼리 연산자를 사용할 수 있습니다.

    예시

    다음 필터는 title 값이 Jurassic Park인 문서를 반환합니다.

    { "title": "Jurassic Park" }
  2. 쿼리를 실행하고 업데이트된 결과를 보려면 Find를 클릭합니다.

    쿼리 필터 적용 결과
    클릭하여 확대

이 페이지의 예시에서는 작은 예시 데이터세트를 사용합니다. 샘플 데이터를 MongoDB 배포로 가져오려면 다음 단계를 수행합니다.

  1. 다음 문서를 클립보드에 복사합니다:

    [
    {
    "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" }
    }
    ]
  2. Compass에서 왼쪽 탐색 패널을 사용하여 데이터를 가져오려는 데이터베이스 및 컬렉션을 선택합니다.

  3. Documents 탭을 클릭합니다.

  4. Add Data 0}을 클릭하고 Insert Document을 선택합니다.

  5. View 을 JSON({})으로 설정합니다.

  6. 클립보드의 JSON 문서를 모달에 붙여넣습니다.

  7. 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" }
}

다음 쿼리 필터는 scores 배열이 75 값을 포함하며 nameGreg 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 연산자를 사용하여 version4거나 nameAndrea 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 연산자를 사용하여 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 연산자를 사용하여 version4보다 작거나 같은 모든 문서를 찾습니다.

{ 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 문자가 포함된 데이터를 쿼리하거나 내보내려고 하면 다음의 오류 메시지가 표시됩니다.

Invalid UTF-8 string in BSON document.

이 데이터를 쿼리하거나 내보내려면 enableUtf8Validation URI 옵션을 false로 설정하여 UTF8 유효성 검사를 비활성화합니다.

경고

enableUtf8Validation=false데이터를 편집하면 데이터가 손실될 수 있습니다. 이 방법은 데이터를 쿼리하거나 내보낼 때만 사용할 수 있는 임시 해결 방법입니다.

다음 URI는 UTF8 유효성 검사를 비활성화합니다.

mongodb://localhost:27017/?enableUtf8Validation=false

참고

고급 연결 옵션에서 enableUtf8Validation을 선택하고 false를 입력하여 이 옵션을 비활성화할 수도 있습니다.

$filterSQL 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";

돌아가기

여러 문서 삭제