Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Pipeline de agregación

Una pipeline de agregación consta de una o más etapas que procesan documentos. Estos documentos pueden provenir de una colección, una vista o una etapa especialmente diseñada.

Cada etapa realiza una operación en los documentos de entrada. Por ejemplo, una etapa puede $filter documentos, $group documentos y calcular valores. Los documentos que una etapa produce se pasan a la siguiente etapa de la pipeline.

Una pipeline de agregación puede devolver resultados para grupos de documentos. También puedes actualizar documentos con una pipeline de agregación con las etapas que se muestran 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.

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.

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.

Para ejecutar una canalización de agregación, utilice:

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.

  • La misma etapa puede aparecer varias veces en una pipeline, excepto para $out, $merge y $geoNear.

Para ver todas las etapas de agregación, consulta Etapas de agregación.

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

3

Operadores

Expresiones de ruta de campo

"$<path.to.field>"

Por ejemplo, { $add: [ 3, "$inventory.total" ] } es una expresión que consta del operador $add y dos operandos:

La expresión devuelve el resultado de sumar 3 al valor en la ruta inventory.total del documento de entrada.

Nota

Acceso a los índices de elementos de arreglos en $map, $filter y $reduce

MongoDB 8.3 mejora el acceso a los índices de elementos de arreglos en las expresiones de agregación de $map, $filter y $reduce. Puedes usar el nuevo campo arrayIndexAs para establecer una variable que almacene el índice de un elemento de un arreglo. También puedes utilizar la nueva variable del sistema de agregación $$IDX para acceder al índice del elemento actual del arreglo si omites arrayIndexAs.

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.

Para actualizar documentos con una canalización de agregación, utilice:

Para límites en los tipos de valores y el tamaño de los resultados, consulta Límites del pipeline de agregación.

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:

Para obtener más información sobre las pipelines de agregación, consulta: