Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

집계 파이프라인 제한

이 페이지의 내용

  • 결과 크기 제한
  • 단계 수 제한
  • 메모리 제한

aggregate 명령을 사용한 집계 작업에는 다음과 같은 제한 사항이 있습니다.

aggregate 명령은 커서를 반환하거나 결과를 collection에 저장할 수 있습니다. 결과 집합의 각 문서에는 16메가바이트 BSON 문서 크기 제한이 적용됩니다. 단일 문서가 BSON 문서 크기 제한을 초과하는 경우, 집계 시 오류가 발생합니다. 이 제한은 반환된 문서에만 적용됩니다. 파이프라인 처리 중에 문서가 이 크기를 초과할 수 있습니다. db.collection.aggregate() 메서드는 기본적으로 커서를 반환합니다.

MongoDB는 단일 파이프라인에서 허용되는 집계 파이프라인 단계 수를 1000개로 제한합니다.

집계 파이프라인이 구문 분석 전후에 단계 제한을 초과하면 오류가 발생합니다.

각 개별 파이프라인 단계의 RAM 한도는 100메가바이트입니다. 기본적으로 단계가 이 제한을 초과하면 MongoDB에서 오류가 발생합니다. 일부 파이프라인 단계의 경우 allowDiskUse 옵션을 사용하여 집계 파이프라인 단계에서 임시 파일에 데이터를 쓰도록 설정하여 파이프라인 처리가 더 많은 공간을 차지하도록 할 수 있습니다.

$search 애그리게이션 단계는 별도의 프로세스에서 실행되므로 100 메가바이트의 RAM으로 제한되지 않습니다.

allowDiskUsetrue 일 때 디스크로 유출될 수 있는 단계의 예는 다음과 같습니다.

  • $bucket

  • $bucketAuto

  • $group

  • $sort 인덱스에서 정렬 작업을 지원하지 않는 경우

  • $sortByCount

참고

파이프라인 단계는 각 파이프라인 단계가 문서를 가져와 처리한 다음 결과 문서를 출력하는 문서 스트림에서 작동합니다.

일부 단계에서는 들어오는 문서를 모두 처리할 때까지 문서를 출력할 수 없습니다. 이러한 파이프라인 단계는 들어오는 모든 문서가 처리될 때까지 단계 출력을 RAM에 보관해야 합니다. 따라서 이러한 파이프라인 단계에는 100MB 제한보다 더 많은 공간이 필요할 수 있습니다.

$sort 파이프라인 단계 중 하나의 결과가 한도를 초과하는 경우 $limit 단계를 추가하는 것을 고려하세요.

프로파일러 로그 메시지진단 로그 메시지에는 메모리 제한으로 인해 집계 단계에서 임시 파일에 데이터를 쓴 경우 usedDisk 표시기가 포함됩니다.

돌아가기

최적화