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, debería usar una canalización de agregación. Las canalizaciones de agregación ofrecen 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 características 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 la canalización, consulte 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 agrupación, puede realizar tareas de agregación complejas, así como realizar agregación incremental en conjuntos de datos en continuo crecimiento. Consulta ejemplos de map-reduce y ejecutar un map-reduce incremental. |
Flexibilidad | Puede 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
| 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 |