Docs Menu
Docs Home
/ /
/ / /

Comparación de los comandos de agregación

Nota

Canalización de agregación como alternativa a Map-Reduce

A partir de MongoDB 5.0, map-reduce está obsoleto:

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 de las tareas de agregación.

Utiliza un enfoque de "tubería" donde los objetos se transforman a medida que pasan por una serie de etapas de la tubería,$group como, $match $sorty.

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 tuberías no necesitan producir un documento de salida para 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.

Consulte los ejemplos de Map-Reduce y realice Map-Reduce incremental.

Flexibilidad

Puede definir acumuladores personalizados con $accumulator y expresiones personalizadas $function con.

También puede agregar campos calculados, crear nuevos subobjetos virtuales y extraer subcampos en el nivel superior de resultados mediante el $project operador de canalización.

Consulte para obtener $project más información y Etapas de agregación para obtener más información sobre todas las etapas de canalización disponibles.

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

mapReduce Consulte para obtener detalles y restricciones sobre las funciones.

Resultados de salida

Devuelve los resultados como un cursor. Si la canalización incluye la $out etapa o, el cursor está $merge 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. Para las colecciones existentes, puede especificar cómo incorporar los resultados a la colección de salida (insertar nuevos documentos, fusionarlos, reemplazarlos, conservar los existentes, rechazar la operación o procesar los documentos con una secuencia de actualización personalizada). Consulte para obtener más información.$merge

Devuelve resultados con varias opciones (en línea, nueva colección, fusionar, reemplazar, reducir). Consulte para obtener más mapReduce información sobre las opciones de salida.

particionado

Admite colecciones de entradas fragmentadas y no fragmentadas.

$merge Puede generar salida a una colección fragmentada o no fragmentada.

Admite colecciones de entradas fragmentadas y no fragmentadas.

Más información

Tip

Volver

Comandos

En esta página