집계 파이프라인 및 샤드 컬렉션을 참조하세요.
집계 파이프라인 은 샤딩된 컬렉션에 대한 작업을 지원합니다. 이 섹션에서는 집계 파이프라인 및 샤딩된 컬렉션과 관련된 동작에 대해 설명합니다.
행동
파이프라인이 정확히 $match
에서 시작하는 경우 샤드 키로 시작하고 파이프라인에 $out
또는 $lookup
단계가 포함되지 않은 경우 전체 파이프라인은 일치하는 샤드에서만 실행됩니다.
여러 샤드에서 집계 작업이 실행되는 경우, 다음과 같은 경우를 제외하고는 결과가 병합할 mongos
로 라우팅됩니다.
파이프라인 에
$out
단계가 포함된 경우 출력 컬렉션 이 있는 샤드 에서 병합이 실행됩니다.파이프라인 에 샤딩되지 않은 컬렉션 을 참조하는
$lookup
단계가 포함된 경우, 병합은 샤딩되지 않은 컬렉션 이 있는 샤드 에서 실행됩니다.파이프라인에 정렬 또는 그룹화 단계가 포함되어 있고 AllowDiskUse 설정이 활성화된 경우 병합은 무작위로 선택된 샤드에서 실행됩니다.
최적화
집계 파이프라인을 두 부분으로 분할할 때는 최적화를 고려하여 샤드가 최대한 많은 단계를 수행하도록 파이프라인이 분할됩니다.
파이프라인이 어떻게 분할되었는지 확인하려면 메서드에 explain
옵션을 db.collection.aggregate()
포함하세요.
최적화는 릴리스 간에 변경될 수 있습니다.