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