Docs Menu
Docs Home
/ /
Pipeline de agregación
/ / /

Límites de la canalización de agregación

Operaciones de agregación con el aggregate El comando tiene las siguientes limitaciones.

El comando puede devolver un cursor o almacenar los resultados en una colección. Cada documento del conjunto de resultados está sujeto aggregate al 16 límite de tamaño de documento BSON de megabytes. Si un documento individual supera este límite, la agregación genera un error. El límite solo se aplica a los documentos devueltos. Durante el procesamiento de la canalización, los documentos pueden superar este tamaño. El método devuelve un cursor por db.collection.aggregate() defecto.

MongoDB limita el número de etapas de la canalización de agregación permitidas en un solo pipeline a 1000.

Si un pipeline de agregación supera el límite de etapa antes o después de ser analizada, se recibe un error.

Cada etapa de la canalización tiene un límite de 100 megabytes de RAM. De forma predeterminada, si una etapa supera este límite, MongoDB genera un error. En algunas etapas de la canalización, puede permitir que el procesamiento ocupe más espacio mediante la opción allowDiskUse para que las etapas de agregación de la canalización escriban datos en archivos temporales.

La $search etapa de agregación no está restringida a 100 megabytes de RAM porque se ejecuta en un proceso separado.

Ejemplos de etapas que pueden extenderse al disco cuando allowDiskUse es true son:

  • $bucket

  • $bucketAuto

  • $group

  • $sort cuando la operación de ordenación no está soportada por un índice

  • $sortByCount

Nota

Las etapas del pipeline operan en flujos de documentos, donde cada etapa del pipeline toma documentos, realizando su procesamiento y luego produciendo los documentos resultantes.

Algunas etapas no pueden generar ningún documento hasta que hayan procesado todos los documentos entrantes. Estas etapas del pipeline deben mantener su salida en la RAM hasta que se procesen todos los documentos entrantes. Como resultado, estas etapas de la pipeline pueden requerir más espacio que el límite de 100 MB.

Si los resultados de una de las etapas del pipeline $sort exceden el límite, se debe considerar agregar una etapa $limit.

Los mensajes de registro del Perfilador y los mensajes de registro de diagnóstico incluyen un indicador usedDisk si alguna etapa de agregación guardó datos en archivos temporales debido a restricciones de memoria.

Volver

Optimización

En esta página