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
/ /
/ / /

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 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 $group, $match, y $sort.

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 $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 acumuladores personalizados con $accumulator y expresiones personalizadas $function con.

También puedes usar la $project etapa de pipeline para agregar campos calculados y reorganizar los campos existentes del documento.

Consulta $project para más información y Etapas de agregación para obtener más información sobre todas las etapas 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.

$mergeCon, puede exportar los resultados a una colección nueva o existente. En el caso de las colecciones existentes, puede especificar cómo incorporar los resultados a la colección de salida (insertar nuevos documentos, fusionarlos, reemplazarlos, conservarlos, rechazar la operación o procesarlos con una secuencia de actualización personalizada). Consulte para obtener más información.$merge

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