Nota
Pipeline de agregación como alternativa a Map-Reduce
A partir de MongoDB 5.0, El map-reduce está en desuso:
En lugar de map-reduce, debes usar un pipeline de agregación. Los pipelines de agregación ofrecen un mejor rendimiento y usabilidad que map-reduce.
Puedes reescribir las operaciones de map-reduce usando etapas del pipeline de agregación, como
$group,$mergey otros.Para las operaciones map-reduce que requieren una funcionalidad personalizada, puedes utilizar los operadores de agregación
$accumulatory$function. Puedes utilizar esos operadores para definir expresiones de agregación personalizadas en JavaScript.
Para ejemplos de alternativas de pipeline de agregación a map-reduce, consulte:
Tabla comparativa de comandos de agregación
La siguiente tabla compara las funcionalidades de los comandos de agregación de MongoDB.
Descripción | Diseñado con objetivos específicos de mejorar el rendimiento y la usabilidad para tareas de agregación. Utiliza un enfoque de "pipeline" donde los objetos se transforman a medida que pasan por una serie de etapas de la pipeline como Para obtener más información sobre las etapas de pipeline, consulta Etapas de agregación. | Implementa la agregación Map-Reduce para procesar grandes conjuntos de datos. |
Características clave | Los operadores de pipeline pueden repetirse según sea necesario. Los operadores de pipeline no tienen que producir un documento de salida por cada documento de entrada. También puede generar nuevos documentos o filtrar documentos. Utilizando la etapa | Además de las operaciones de agrupamiento, puede realizar tareas de agregación complejas y realizar agregaciones incrementales en conjuntos de datos que crecen de manera continua. Consulta ejemplos de map-reduce y ejecutar un map-reduce incremental. |
Flexibilidad | Puedes definir acumuladores personalizados con También puedes usar la Consulta | Las funciones JavaScript personalizadas Consulta |
Resultados de salida | Devuelve resultados como un cursor. Si la canalización incluye la etapa Con Con | Devuelve los resultados en varias opciones (en línea, nueva colección, combinar, reemplazar, reducir). Consulta |
particionado | Admite colecciones de entradas particionadas y no particionadas.
| Admite colecciones de entradas particionadas y no particionadas. |
Más información |