Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 breve descripción general de 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 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 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 expresiones de agregación personalizadas con $accumulator $functiony.

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.

$outCon, puede reemplazar completamente una colección de salida existente o generar una nueva. Consulte para obtener más $out información.

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