AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.

$match (집계 단계)

$match

지정된 쿼리 조건에 따라 문서를 필터링합니다. 일치하는 문서는 다음 파이프라인 단계로 전달됩니다.

다음 환경에서 호스팅되는 배포에 $match 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
{ $match: { <query predicate> } }

$match 쿼리 조건의 구문은 find() 명령의 쿼리 인수에 사용되는 구문과 동일합니다.

쿼리 술어에 표현식을 포함하려면 $expr 연산자를 사용하세요.

$match 단계는 다음 조건 중 하나가 적용되는 경우 파이프라인 결과에서 문서 를 필터링합니다.

  • $match 쿼리 조건자는 해당 문서 에 대한 0, null 또는 false 값을 반환합니다.

  • $match 쿼리 조건자가 해당 문서 에서 누락된 필드 를 사용합니다.

  • $match 단계에서는 $where을 사용할 수 없습니다.

  • $match 단계에서 $near 또는 $nearSphere를 사용할 수 없습니다. 대신 다음 중 하나를 사용할 수 있습니다.

  • $match 단계에서 $text를 사용하려면 $match 단계가 파이프라인의 첫 번째 단계여야 합니다.

    보기는 $text을(를) 지원하지 않습니다.

    참고

    $text 이 페이지에서는 자체 관리형(Atlas에서 관리하지 않는) 배포를 위한 일반 텍스트 쿼리 기능을 제공합니다. MongoDB Atlas에서 호스팅되는 데이터의 경우 MongoDB는 향상된 전체 텍스트 쿼리 솔루션인 Atlas Search를 제공합니다.

MongoDB Atlas에 저장된 데이터의 경우, Atlas Search 복합 연산자 filter 옵션을 사용하여 $search 쿼리를 실행할 때 문서를 일치시키거나 필터링할 수 있습니다. $match를 $search 다음에 실행하는 것은 $search를 복합 연산자 filter 옵션으로 실행하는 것보다 성능이 떨어집니다.

filter 옵션에 대해 자세히 알아보려면 Atlas 설명서에서 복합 연산자를 참조하세요.

이 페이지의 예시는 sample_mflix 데이터 세트의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB 배포서버에 로드하는 방법에 대한 자세한 내용은 샘플 데이터세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우, 이 페이지의 예시를 실행하려면 데이터베이스를 제거하고 다시 생성해야 할 수 있습니다.

다음 작업은 $match 를 사용하여 rated 필드에서 동등성 매치를 수행합니다. runtime 필터하다 결과를 작고 대표적인 설정하다 로 제한합니다.

db.movies.aggregate( [ { $match : { rated : "TV-PG", runtime : { $gt: 1000 } } } ])

$match 은 rated 필드 "TV-PG" 와 같고 runtime 이 1000보다 큰 문서를 선택합니다.

다음 예시에서는 $match 파이프라인 연산자를 사용하여 프로세싱할 문서를 선택한 다음 결과를 $group 파이프라인 연산자로 파이프하여 문서 수를 계산합니다.

db.movies.aggregate( [ { $match: { $or: [ { runtime: { $gt: 1000 } }, { year: { $lt: 1910 } } ] } }, { $group: { _id: null, count: { $sum: 1 } } }] )
[ { _id: null, count: 6 } ]

집계 파이프라인 에서 $match 는 runtime 가 1000 보다 크거나 year 이 1910보다 빠른 문서를 선택합니다. 그런 다음 이러한 문서는 계산을 수행하기 위해 $group 로 전송됩니다.

배열 필드 의 요소를 기반으로 문서를 필터하다 하려면 $match 단계의 쿼리 술어에서 $elemMatch 연산자 사용합니다.

db.aggregate( [ { $documents: [ { student_id: 1, scores: [ 0.75, 0.65, 0.73 ] }, { student_id: 2, scores: [ 0.9, 0.88, 0.98 ] }, { student_id: 3, scores: [ 0.9, 0.84, 0.93 ] } ] }, { $match: { scores: { $elemMatch: { $gte: 0.9 } } } }] )
[ { student_id: 2, scores: [ 0.9, 0.88, 0.98 ] }, { student_id: 3, scores: [ 0.9, 0.84, 0.93 ] }]

집계에 대한 자세한 정보와 사용 사례는 완전한 집계 파이프라인 튜토리얼을 참조하세요.