Una pipeline de agregación consta de una o más etapas que procesan documentos:
Cada etapa realiza una operación sobre los documentos de entrada. Por ejemplo, una etapa puede filtrar documentos, agrupar documentos y calcular valores.
Los documentos que se generan en una etapa se pasan a la siguiente etapa.
Una pipeline de agregación puede devolver resultados para grupos de documentos. Por ejemplo, devuelve los valores totales, promedio, máximos y mínimos.
Puedes actualizar documentos con una pipeline de agregación si utilizas las etapas mostradas en Actualizaciones con pipeline de agregación.
Nota
Las pipelines de agregación que se ejecutan con el método db.collection.aggregate() no modifican los documentos en una colección, a menos que la pipeline contenga una etapa $merge o $out.
Puedes ejecutar pipelines de agregación en la interfaz de usuario para implementaciones alojadas en MongoDB Atlas.
Cuando ejecutas pipelines de agregación en las implementaciones de MongoDB Atlas en la interfaz de usuario de MongoDB Atlas, puedes consultar una vista previa de los resultados en cada etapa.
Ejemplos completos de pipeline de agregación
La sección Complete pipeline de agregación Tutorials contiene tutoriales paso a paso para tareas comunes de agregación, con ejemplos para MongoDB Shell y cada uno de los drivers oficiales de MongoDB.
Ejecuta una pipeline de agregación
Para ejecutar una canalización de agregación, utilice:
Más detalles de la etapa de pipeline de agregación
Una pipeline de agregación consta de una o más etapas que procesan documentos:
Una etapa no necesita emitir un documento por cada documento de entrada. Algunas etapas producen nuevos documentos o filtran documentos.
Para ver todas las etapas de agregación, consulta Etapas de agregación.
Expresiones y operadores
En los pipeline de agregación, las expresiones definen cómo la etapa procesa cada documento de entrada en el pipeline. Por ejemplo, las expresiones pueden definir qué documentos incluir, cómo remodelar los campos o cómo calcular nuevos valores.
Algunas etapas de la canalización de agregación aceptan expresiones. Los operadores calculan valores basándose en las expresiones de entrada.
En el lenguaje del query de MongoDB, puedes crear expresiones a partir de los siguientes componentes:
Componente | Ejemplo |
|---|---|
Constantes |
|
Operadores | |
Expresiones de ruta de campo |
|
Por ejemplo, { $add: [ 3, "$inventory.total" ] } es una expresión que consta del operador $add y dos operandos:
La constante
3La expresión de ruta de campo
"$inventory.total"
La expresión devuelve el resultado de sumar 3 al valor en la ruta inventory.total del documento de entrada.
Rutas de campos
Las expresiones de ruta de campo acceden a los campos en los documentos de entrada. Anteponer al nombre del campo un signo de dólar $. Por ejemplo, "$user" hace referencia al campo user, y "$user.name" hace referencia al campo incrustado user.name.
Para más ejemplos, consulte Rutas de campo.
Actualiza documentos con una pipeline de agregación
Para actualizar documentos con una canalización de agregación, utilice:
Otras consideraciones
Limitaciones de la canalización de agregación
Para límites en los tipos de valores y el tamaño de los resultados, consulta Límites del pipeline de agregación.
Pipelines de agregación y colecciones fragmentadas
Los pipelines de agregación admiten operaciones en colecciones fragmentadas. Consulte Pipeline de agregación and Sharded Collections.
Importante
Pipelines de agregación como alternativa de 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:
Obtén más información
Para obtener más información sobre las pipelines de agregación, consulta: