집계 파이프라인은 문서를 처리하는 하나 이상의 단계로 구성됩니다.
각 단계는 입력 문서에 대한 연산을 수행합니다. 예를 들어, 한 단계에서는 문서를 필터링하고, 문서를 그룹화하고, 값을 계산할 수 있습니다.
한 단계에서 출력된 문서는 다음 단계로 전달됩니다.
집계 파이프라인은 문서 그룹에 대한 결과를 반환할 수 있습니다. 예를 들어 총값, 평균값, 최대값, 최소값을 반환할 수 있습니다.
집계 파이프라인을 사용하여 업데이트에 표시된 단계를 사용하는 경우 집계 파이프라인으로 문서를 업데이트할 수 있습니다.
MongoDB Atlas에서 호스팅되는 배포에 대해 UI에서 집계 파이프라인을 실행할 수 있습니다.
MongoDB Atlas UI에서 MongoDB Atlas에 집계 파이프라인을 실행하는 경우 각 단계에서 결과를 미리 볼 수 있습니다.
집계 파이프라인 예시
전체 집계 파이프라인 튜토리얼 섹션에는 일반적인 집계 작업에 대한 단계별 튜토리얼과 MongoDB Shell 및 각 공식 MongoDB 드라이버에 대한 예제가 포함되어 있습니다.
추가 집계 파이프라인 단계 세부 정보
집계 파이프라인은 문서를 처리하는 하나 이상의 단계로 구성됩니다.
스테이지는 모든 입력 문서 에 대해 하나의 문서 출력할 필요가 없습니다. 일부 단계에서는 새 문서를 생성하거나 문서를 필터하다 .
,,
$out$merge를 제외하고 동일한 단계가 파이프라인 에 여러 번 나타날 수$geoNear있습니다.
모든 집계 단계에 대해 집계 단계를 참조하세요
표현식 및 연산자
일부 집계 파이프라인 단계에서는 표현식을 허용합니다. 연산자는 입력 표현식을 기반으로 값을 계산합니다.
MongoDB 쿼리 언어에서는 다음 구성 요소에서 표현식을 빌드할 수 있습니다.
구성 요소 | 예시 |
|---|---|
상수 |
|
연산자 | |
필드 경로 표현식 |
|
예시 를 들어 { $add: [ 3, "$inventory.total" ] } 은 $add 연산자 와 두 개의 피연산자로 구성된 표현식 입니다.
상수
3필드 경로 표현식
"$inventory.total"
표현식은 입력 문서의 경로 inventory.total에 있는 값에 3을 더한 결과를 반환합니다.
필드 경로
필드 경로 표현식은 입력 문서의 필드에 액세스 . 필드 이름 앞에 달러 기호 를 $ 붙입니다. 예시 들어, "$user" user 은 "$user.name" 필드 참조하고 는 포함된 user.name 필드 참조합니다.
"$<field>" "$$CURRENT.<field>"여기서 은 단계에서 달리 지정하지 않는 한 현재 객체 의 루트를 기본값으로 하는 시스템 CURRENT 변수입니다.
더 많은 예시는 필드 경로를 참조하세요.
집계 파이프라인실행
집계 파이프라인을 실행하려면 다음을 사용하세요.
집계 파이프라인을 사용하여 문서 업데이트하기
집계 파이프라인을 사용하여 문서를 업데이트하려면 다음을 사용하세요.
기타 고려 사항
집계 파이프라인 제한 사항
값 유형 및 결과 크기에 대한 제한은 집계 파이프라인 제한을 참조하세요.
집계 파이프라인 및 샤드 컬렉션
집계 파이프라인은 샤딩된 컬렉션에 대한 작업을 지원 . 집계 파이프라인 및 샤드 컬렉션을 참조하세요.
맵 리듀스의 대안으로서의 집계 파이프라인
MongoDB 5.0부터 맵 리듀스는 더 이상 사용되지 않습니다.
맵 리듀스 대신 집계 파이프라인을 사용해야 합니다. 집계 파이프라인은 맵 리듀스보다 성능과 유용성 측면에서 더 우수합니다.
$group,$merge등과 같은 집계 파이프라인 단계를 사용하여 맵 리듀스 작업을 다시 작성할 수 있습니다.사용자 지정 기능이 필요한 맵 리듀스 작업의 경우
$accumulator및$function집계 연산자를 사용할 수 있습니다. 이러한 연산자를 사용하여 JavaScript에서 사용자 지정 집계 표현식을 정의할 수 있습니다.
맵 리듀스 대안으로서의 집계 파이프라인 예시는 다음을 참조하세요.
자세히 알아보기
집계 파이프라인에 대해 자세히 알아보려면 다음을 참조하세요.