Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

집계 단계

이 페이지의 내용

  • 호환성
  • db.collection.aggregate() Stages
  • db.aggregate() 단계
  • 업데이트 가능한 단계

db.collection.aggregate() 메서드와 db.aggregate() 메서드에서는 파이프라인 단계가 배열로 나타납니다. Atlas UI에서는 집계 파이프라인 빌더를 사용하여 파이프라인 단계를 정렬할 수 있습니다. 문서는 순차적으로 단계를 통과합니다.

다음 환경에서 호스팅되는 배포서버에 파이프라인 단계를 사용할 수 있습니다.

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

$out, $merge, $geoNear, $changeStream$changeStreamSplitLargeEvent단계를 제외한 모든 단계는 파이프라인에서 여러 번 나타날 수 있습니다.

참고

구문 및 예시를 포함하여 특정 연산자에 대한 자세한 내용을 보려면 연산자의 참조 페이지에 대한 링크를 클릭하십시오.

db.collection.aggregate( [ { <stage> }, ... ] )
단계
설명

문서에 새 필드를 추가합니다. $project와(과) 유사하게 $addFields은(는) 스트림의 각 문서를 재구성합니다. 특히 입력 문서의 기존 필드와 새로 추가된 필드를 모두 포함하는 출력 문서에 새 필드를 추가합니다.

$set$addFields의 별칭입니다.

지정된 표현식과 버킷 경계를 기반으로 수신 문서를 버킷이라는 그룹으로 분류합니다.

지정된 표현식을 기반으로 수신 문서를 버킷이라는 특정 수의 그룹으로 분류합니다. 버킷 경계는 지정된 수의 버킷에 문서를 고르게 분산할 수 있도록 자동으로 결정됩니다.

컬렉션에서 변경 스트림 커서를 반환합니다. 이 단계는 집계 파이프라인에서 한 번만 발생할 수 있으며 첫 번째 단계로 발생해야 합니다.

16MB를 초과하는 대형 변경 스트림 이벤트를 변경 스트림 커서에 반환되는 작은 조각으로 분할합니다.

$changeStreamSplitLargeEvent$changeStream 파이프라인에서만 사용할 수 있으며 이것이 파이프라인의 마지막 단계여야 합니다.

단계 또는 뷰에 관한 통계를 반환합니다.

집계 파이프라인의 이 단계에 있는 문서 수를 반환합니다.

$count 축적자와는 다릅니다.

필드의 특정 값이 누락된 문서 시퀀스에서 새 문서를 만듭니다.

입력 표현식에서 리터럴 문서를 반환합니다.

동일한 입력 문서 세트의 단일 단계에서 여러 개의 집계 파이프라인을 처리합니다. 단일 단계에서 여러 차원 또는 패싯에 걸쳐 데이터를 특성화할 수 있는 다면적 집계를 생성할 수 있습니다.

문서 내에서 null 필드 값과 누락된 필드 값을 채웁니다.

지리 공간적 공간 점과의 근접성을 기준으로 정렬된 문서 스트림을 반환합니다. 지리 공간적 공간 데이터에 $match, $sort, $limit 기능을 통합합니다. 출력 문서에는 추가 거리 필드가 포함되며 위치 식별자 필드가 포함될 수 있습니다.

컬렉션에서 재귀 검색을 수행합니다. 각 출력 문서에 해당 문서에 대한 재귀 검색의 순회 결과를 포함하는 새 배열 필드를 추가합니다.

지정된 식별자 표현식으로 입력 문서를 그룹화하고, 지정된 경우 축적자 표현식을 각 그룹에 적용합니다. 모든 입력 문서를 소비하고 각 개별 그룹당 하나의 문서를 출력합니다. 출력 문서에는 식별자 필드와 누적된 필드(지정된 경우)만 포함됩니다.

컬렉션의 각 인덱스 사용에 관한 통계를 반환합니다.

수정되지 않은 처음 n개 문서를 파이프라인에 전달하며, 여기서 n은 지정된 제한입니다. 각 입력 문서에 대해 문서 1개(처음 n개 문서에 대해) 또는 문서 0개(처음 n개 문서 이후)를 출력합니다.

모든 컬렉션 또는 특정 컬렉션에 대한 샘플링된 쿼리 나열

지정된 collection의 기존 Atlas Search 인덱스 정보를 반환합니다.

system.sessions 컬렉션으로 전파될 수 있을 만큼 충분히 오랫동안 활성화된 모든 세션을 나열합니다.

동일한 데이터베이스의 다른 컬렉션에 왼쪽 외부 조인을 수행하여 '조인된(joined)' 컬렉션의 문서를 필터링해 처리합니다.

일치하는 문서만 수정되지 않은 상태로 다음 파이프라인 단계로 전달될 수 있도록 문서 스트림을 필터링합니다. $match는 표준 MongoDB 쿼리를 사용합니다. 각 입력 문서에서 하나의 문서(일치하는 문서) 또는 0개의 문서(일치하지 않는 문서)를 출력합니다.

집계 파이프라인의 결과 문서를 collection에 씁니다. 이 단계에서는 (새 문서 삽입, 문서 병합, 문서 교체, 기존 문서 유지, 작업 실패, 사용자 지정 업데이트 파이프라인으로 문서 프로세스) 결과를 출력 collection에 통합할 수 있습니다. $merge 단계를 사용하려면 파이프라인의 마지막 단계여야 합니다.

집계 파이프라인의 결과 문서를 collection에 씁니다. $out 단계를 사용하려면 파이프라인의 마지막 단계여야 합니다.

collection에 대한 계획 캐시 정보를 반환합니다.

새 필드를 추가하거나 기존 필드를 제거하는 등 스트림의 각 문서 모양을 변경합니다. 각 입력 문서에 대해 하나의 문서를 출력합니다.

기존 필드 제거에 대한 내용은 $unset도 참조하세요.

setQuerySettings로 이전에 추가된 쿼리 설정을 반환합니다.

버전 8.0에 추가 되었습니다.

기록된 쿼리에 대한 런타임 통계를 반환합니다.

경고: $queryStats 집계 단계는 지원되지 않으며 향후 릴리스에서 안정적일 것이라고 보장할 수 없습니다. 향후 릴리스에서 출력이 변경될 수 있으므로 이 단계의 특정 출력 형식에 의존하는 기능을 구축하지 마십시오.

문서 자체에 저장된 정보를 기반으로 각 문서의 콘텐츠를 제한해 스트림의 각 문서를 재구성합니다. $project$match의 기능을 통합합니다. 필드 수준 편집을 구현하는 데 사용할 수 있고, 각 입력 문서에서 문서 1개 또는 0개를 출력합니다.

문서를 특정 내장된 문서로 바꿉니다. 이 작업은 _id 필드를 포함하여 입력 문서의 모든 기존 필드를 대체합니다. 입력 문서에 내장된 문서를 지정하여 내장된 문서를 최상위 수준으로 승격합니다.

$replaceWith$replaceRoot 단계의 별칭입니다.

문서를 특정 내장된 문서로 바꿉니다. 이 작업은 _id 필드를 포함하여 입력 문서의 모든 기존 필드를 대체합니다. 입력 문서에 내장된 문서를 지정하여 내장된 문서를 최상위 수준으로 승격합니다.

$replaceWith$replaceRoot 단계의 별칭입니다.

입력에서 지정된 수의 문서를 임의로 선택합니다.

Atlas 컬렉션에서 하나 이상의 필드에 대한 전체 텍스트 검색을 수행합니다.

$search 는 MongoDB Atlas 클러스터에서만 사용할 수 있으며 자체 관리 배포서버에는 사용할 수 없습니다. 자세히 알아보려면 Atlas Search 집계 파이프라인 단계를 참조하세요.

Atlas 컬렉션에 대한 Atlas Search 쿼리에 대해 다양한 유형의 메타데이터 결과 문서를 반환합니다.

$searchMeta 는 MongoDB Atlas 클러스터에서만 사용할 수 있으며 자체 관리 배포서버에는 사용할 수 없습니다. 자세히 알아보려면 Atlas Search 집계 파이프라인 단계를 참조하세요.

문서에 새 필드를 추가합니다. $project와(과) 유사하게 $set은(는) 스트림의 각 문서를 재구성합니다. 특히 입력 문서의 기존 필드와 새로 추가된 필드를 모두 포함하는 출력 문서에 새 필드를 추가합니다.

$set$addFields 단계의 별칭입니다.

문서를 창으로 그룹화하고 각 창의 문서에 하나 이상의 연산자를 적용합니다.

버전 5.0에 추가.

건너뛰기 수가 n으로 지정된 경우 첫 n개의 문서를 건너뛰고 나머지 문서를 수정되지 않은 상태로 파이프라인에 전달합니다. 각 입력 문서에서 문서 0개(첫 n개 문서에서) 또는 문서 1개(첫 n개 문서 이후)를 출력합니다.

지정된 정렬 키를 기준으로 문서 스트림을 재정렬합니다. 주문만 변경되고 문서는 수정되지 않은 상태로 유지되며, 각 입력 문서에서 하나의 문서를 출력합니다.

지정된 표현식의 값을 기준으로 들어오는 문서를 그룹화한 다음 각 고유 그룹의 문서 수를 계산합니다.

두 collection의 union을 수행합니다. 즉, 두 collection의 파이프라인 결과를 단일 결과 세트로 결합합니다.

문서에서 필드를 제거/제외합니다.

$unset는 필드를 제거하는 $project 단계의 별칭입니다.

입력 문서에서 배열 필드를 분해해 요소에 대한 문서를 출력합니다. 각 출력 문서는 배열을 요소 값으로 대체합니다. 각 입력 문서에서 n개의 문서를 출력합니다. 여기서 n은 배열 요소의 개수이며, 빈 배열의 경우 0이 될 수 있습니다.

Atlas 컬렉션의 지정된 필드에 있는 벡터에서 근사 최근접 이웃 또는 등가 최근접 이웃검색을 수행합니다.

$vectorSearch 는 MongoDB v6.0.11 이상을 실행하는 MongoDB Atlas 클러스터에서만 사용할 수 있으며 자체 관리형 배포에서는 사용할 수 없습니다.

버전 7.0.2에 새로 추가됨:

파이프라인 단계에서 사용할 집계 표현식 연산자는 집계 연산자를 참조하세요.

MongoDB는 db.aggregate() 메서드도 제공합니다.

db.aggregate( [ { <stage> }, ... ] )

다음 단계에서는 db.collection.aggregate() 메서드가 아닌 db.aggregate() 메서드를 사용합니다.

단계
설명

컬렉션에서 변경 스트림 커서를 반환합니다. 이 단계는 집계 파이프라인에서 한 번만 발생할 수 있으며 첫 번째 단계로 발생해야 합니다.

MongoDB deployment의 활성 및/또는 휴면 작업에 대한 정보를 반환합니다.

입력 값에서 리터럴 문서를 반환합니다.

현재 연결된 mongos 또는 mongod 인스턴스에서 최근에 사용 중인 모든 활성 세션을 나열합니다. 이러한 세션이 아직 system.sessions collection으로 전파되지 않았을 수 있습니다.

업데이트에 집계 파이프라인을 아래에서 사용할 수 있습니다.

업데이트의 경우 파이프라인은 다음 단계로 구성될 수 있습니다.

돌아가기

명령.