집계 단계
db.collection.aggregate()
메서드와 db.aggregate()
메서드에서는 파이프라인 단계가 배열로 나타납니다. Atlas UI에서는 집계 파이프라인 빌더를 사용하여 파이프라인 단계를 정렬할 수 있습니다. 문서는 순차적으로 단계를 통과합니다.
호환성
다음 환경에서 호스팅되는 배포서버에 파이프라인 단계를 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
db.collection.aggregate() Stages
$out
, $merge
, $geoNear
, $changeStream
및 $changeStreamSplitLargeEvent
단계를 제외한 모든 단계는 파이프라인에서 여러 번 나타날 수 있습니다.
참고
구문 및 예시를 포함하여 특정 연산자에 대한 자세한 내용을 보려면 연산자의 참조 페이지에 대한 링크를 클릭하십시오.
db.collection.aggregate( [ { <stage> }, ... ] )
단계 | 설명 |
---|---|
문서에 새 필드를 추가합니다.
| |
지정된 표현식과 버킷 경계를 기반으로 수신 문서를 버킷이라는 그룹으로 분류합니다. | |
지정된 표현식을 기반으로 수신 문서를 버킷이라는 특정 수의 그룹으로 분류합니다. 버킷 경계는 지정된 수의 버킷에 문서를 고르게 분산할 수 있도록 자동으로 결정됩니다. | |
컬렉션에서 변경 스트림 커서를 반환합니다. 이 단계는 집계 파이프라인에서 한 번만 발생할 수 있으며 첫 번째 단계로 발생해야 합니다. | |
16MB를 초과하는 대형 변경 스트림 이벤트를 변경 스트림 커서에 반환되는 작은 조각으로 분할합니다.
| |
단계 또는 뷰에 관한 통계를 반환합니다. | |
집계 파이프라인의 이 단계에 있는 문서 수를 반환합니다.
| |
필드의 특정 값이 누락된 문서 시퀀스에서 새 문서를 만듭니다. | |
입력 표현식에서 리터럴 문서를 반환합니다. | |
동일한 입력 문서 세트의 단일 단계에서 여러 개의 집계 파이프라인을 처리합니다. 단일 단계에서 여러 차원 또는 패싯에 걸쳐 데이터를 특성화할 수 있는 다면적 집계를 생성할 수 있습니다. | |
문서 내에서 | |
컬렉션에서 재귀 검색을 수행합니다. 각 출력 문서에 해당 문서에 대한 재귀 검색의 순회 결과를 포함하는 새 배열 필드를 추가합니다. | |
지정된 식별자 표현식으로 입력 문서를 그룹화하고, 지정된 경우 축적자 표현식을 각 그룹에 적용합니다. 모든 입력 문서를 소비하고 각 개별 그룹당 하나의 문서를 출력합니다. 출력 문서에는 식별자 필드와 누적된 필드(지정된 경우)만 포함됩니다. | |
컬렉션의 각 인덱스 사용에 관한 통계를 반환합니다. | |
수정되지 않은 처음 n개 문서를 파이프라인에 전달하며, 여기서 n은 지정된 제한입니다. 각 입력 문서에 대해 문서 1개(처음 n개 문서에 대해) 또는 문서 0개(처음 n개 문서 이후)를 출력합니다. | |
모든 컬렉션 또는 특정 컬렉션에 대한 샘플링된 쿼리 나열 | |
지정된 collection의 기존 Atlas Search 인덱스 정보를 반환합니다. | |
system.sessions 컬렉션으로 전파될 수 있을 만큼 충분히 오랫동안 활성화된 모든 세션을 나열합니다. | |
동일한 데이터베이스의 다른 컬렉션에 왼쪽 외부 조인을 수행하여 '조인된(joined)' 컬렉션의 문서를 필터링해 처리합니다. | |
일치하는 문서만 수정되지 않은 상태로 다음 파이프라인 단계로 전달될 수 있도록 문서 스트림을 필터링합니다. $match 는 표준 MongoDB 쿼리를 사용합니다. 각 입력 문서에서 하나의 문서(일치하는 문서) 또는 0개의 문서(일치하지 않는 문서)를 출력합니다. | |
집계 파이프라인의 결과 문서를 collection에 씁니다. 이 단계에서는 (새 문서 삽입, 문서 병합, 문서 교체, 기존 문서 유지, 작업 실패, 사용자 지정 업데이트 파이프라인으로 문서 프로세스) 결과를 출력 collection에 통합할 수 있습니다. $merge 단계를 사용하려면 파이프라인의 마지막 단계여야 합니다. | |
집계 파이프라인의 결과 문서를 collection에 씁니다. $out 단계를 사용하려면 파이프라인의 마지막 단계여야 합니다. | |
collection에 대한 계획 캐시 정보를 반환합니다. | |
새 필드를 추가하거나 기존 필드를 제거하는 등 스트림의 각 문서 모양을 변경합니다. 각 입력 문서에 대해 하나의 문서를 출력합니다. 기존 필드 제거에 대한 내용은 | |
버전 8.0에 추가 되었습니다. | |
기록된 쿼리에 대한 런타임 통계를 반환합니다. 경고: | |
문서를 특정 내장된 문서로 바꿉니다. 이 작업은
| |
문서를 특정 내장된 문서로 바꿉니다. 이 작업은
| |
입력에서 지정된 수의 문서를 임의로 선택합니다. | |
Atlas 컬렉션에서 하나 이상의 필드에 대한 전체 텍스트 검색을 수행합니다.
| |
Atlas 컬렉션에 대한 Atlas Search 쿼리에 대해 다양한 유형의 메타데이터 결과 문서를 반환합니다.
| |
문서에 새 필드를 추가합니다.
| |
문서를 창으로 그룹화하고 각 창의 문서에 하나 이상의 연산자를 적용합니다. 버전 5.0에 추가. | |
건너뛰기 수가 n으로 지정된 경우 첫 n개의 문서를 건너뛰고 나머지 문서를 수정되지 않은 상태로 파이프라인에 전달합니다. 각 입력 문서에서 문서 0개(첫 n개 문서에서) 또는 문서 1개(첫 n개 문서 이후)를 출력합니다. | |
지정된 정렬 키를 기준으로 문서 스트림을 재정렬합니다. 주문만 변경되고 문서는 수정되지 않은 상태로 유지되며, 각 입력 문서에서 하나의 문서를 출력합니다. | |
지정된 표현식의 값을 기준으로 들어오는 문서를 그룹화한 다음 각 고유 그룹의 문서 수를 계산합니다. | |
두 collection의 union을 수행합니다. 즉, 두 collection의 파이프라인 결과를 단일 결과 세트로 결합합니다. | |
입력 문서에서 배열 필드를 분해해 각 요소에 대한 문서를 출력합니다. 각 출력 문서는 배열을 요소 값으로 대체합니다. 각 입력 문서에서 n개의 문서를 출력합니다. 여기서 n은 배열 요소의 개수이며, 빈 배열의 경우 0이 될 수 있습니다. | |
Atlas 컬렉션의 지정된 필드에 있는 벡터에서 근사 최근접 이웃 또는 등가 최근접 이웃검색을 수행합니다.
버전 7.0.2에 새로 추가됨: |
파이프라인 단계에서 사용할 집계 표현식 연산자는 집계 연산자를 참조하세요.
db.aggregate() 단계
MongoDB는 db.aggregate()
메서드도 제공합니다.
db.aggregate( [ { <stage> }, ... ] )
다음 단계에서는 db.collection.aggregate()
메서드가 아닌 db.aggregate()
메서드를 사용합니다.
단계 | 설명 |
---|---|
컬렉션에서 변경 스트림 커서를 반환합니다. 이 단계는 집계 파이프라인에서 한 번만 발생할 수 있으며 첫 번째 단계로 발생해야 합니다. | |
MongoDB deployment의 활성 및/또는 휴면 작업에 대한 정보를 반환합니다. | |
입력 값에서 리터럴 문서를 반환합니다. | |
업데이트 가능한 단계
업데이트에 집계 파이프라인을 아래에서 사용할 수 있습니다.
명령 | mongosh 방법 |
---|---|
업데이트의 경우 파이프라인은 다음 단계로 구성될 수 있습니다.
$addFields
및 그 별칭$set
$replaceRoot
및 별칭$replaceWith
입니다.