Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
Referencia
/ / /

Comparación de los comandos de agregación

Nota

Pipeline de agregación como alternativa a Map-Reduce

A partir de MongoDB 5.0, El map-reduce está en desuso:

Para ejemplos de alternativas de pipeline de agregación a map-reduce, consulte:

La siguiente tabla proporciona una visión general breve de 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 al pasar por una serie de operadores de pipeline como $group, $match y $sort.

Consulta Operadores de pipeline de agregación para más información sobre los operadores de pipeline.

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 $merge, puedes crear vistas materializadas bajo demanda, donde el contenido de la colección de resultados puede actualizarse de forma incremental cada vez que se ejecuta el pipeline. $merge puede incorporar resultados (insertar nuevos documentos, fusionar documentos, reemplazar documentos, mantener documentos existentes, fallar la operación, procesar documentos con una pipeline de actualización personalizada) en una colección existente.

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 expresiones de agregación personalizadas con $accumulator y $function.

También puedes agregar campos calculados, crear nuevos subobjetos virtuales y extraer subcampos al nivel superior de los resultados utilizando el operador de pipeline $project.

Consulta $project para obtener más información, así como Operadores de pipeline de agregación para más información sobre todos los operadores de pipeline disponibles.

Las funciones JavaScript personalizadas map, reduce y finalize ofrecen flexibilidad a la lógica de agregación.

Consulta mapReduce para obtener detalles y restricciones sobre las funciones.

Resultados de salida

Devuelve resultados como un cursor. Si la canalización incluye la etapa $out o la etapa $merge, el cursor está vacío.

Con $out, puedes reemplazar completamente una colección de resultados existente o enviar los resultados a una nueva colección. Consulta $out para más detalles.

Con $merge, puedes generar una nueva colección o añadir a una existente. Para colecciones existentes, se puede especificar cómo incorporar los resultados en la colección de salida (insertar nuevos documentos, combinar documentos, reemplazar documentos, mantener los documentos existentes, fallar la operación, procesar documentos con un pipeline de actualización personalizado). Véanse $merge para más detalles.

Devuelve los resultados en varias opciones (en línea, nueva colección, combinar, reemplazar, reducir). Consulta mapReduce para obtener detalles sobre las opciones de salida.

particionado

Admite colecciones de entradas particionadas y no particionadas.

$merge puede enviarse a una colección particionada o no particionada.

Admite colecciones de entradas particionadas y no particionadas.

Más información

Tip

Volver

Comandos

En esta página