Docs Menu
Docs Home
/ /

Etapas de la pipeline de agregación

En esta guía, puede aprender cómo crear una canalización de agregación y etapas de canalización mediante el uso de métodos en el controlador MongoDB Node.js.

Puedes usar el controlador de Node.js para crear una canalización de agregación creando una variable de canalización o pasando etapas de agregación directamente al método de agregación. Consulta los siguientes ejemplos para obtener más información sobre cada uno de estos enfoques.

// Defines the aggregation pipeline
const pipeline = [
{ $match: { ... } },
{ $group: { ... } }
];
// Executes the aggregation pipeline
const results = await collection.aggregate(pipeline);
// Defines and executes the aggregation pipeline
const results = await collection.aggregate([
{ $match: { ... } },
{ $group: { ... } }
]);

La siguiente tabla enumera las etapas del pipeline de agregación. Para obtener más información sobre una etapa de agregación y ver un ejemplo de código en una aplicación Node.js, siga el enlace desde el nombre de la etapa a su página de referencia en el manual de MongoDB Server.

Etapa
Descripción

$addFields

Añade nuevos campos a los documentos. Genera documentos que contienen tanto los campos existentes de los documentos de entrada como los campos recién añadidos.

$set es un alias para $addFields.

Clasifica los documentos entrantes en grupos, llamados buckets, basados en una expresión especificada y límites de bucket.

Clasifica los documentos entrantes en un número específico de grupos, denominados buckets, según una expresión especificada. Los límites de los buckets se determinan de manera automática con el objetivo de distribuir uniformemente los documentos en el número especificado de buckets.

Devuelve un cursor de flujo de cambios para la colección. Debe ser la primera etapa del pipeline.

$changeStream devuelve un AggregationCursor cuando se pasa al método aggregate() y un ChangeStreamCursor cuando se pasa al método watch().

Divide los eventos grandes del flujo de cambios que superan los 16 MB en fragmentos más pequeños que se devuelven en un cursor del flujo de cambios. Debe ser la última etapa del pipeline.

$changeStreamSplitLargeEvent devuelve un AggregationCursor cuando se pasa al método aggregate() y un ChangeStreamCursor cuando se pasa al método watch().

Devuelve estadísticas sobre una colección o vista.

Devuelve un recuento del número de documentos en esta etapa del pipeline de agregación.

Devuelve un flujo de documentos que contienen información sobre operaciones activas e inactivas y cualquier sesión inactiva que mantenga bloqueos como parte de una transacción.

Crea nuevos documentos en una secuencia de documentos donde faltan ciertos valores en un campo.

Devuelve documentos literales a partir de expresiones de entrada.

Procesa múltiples pipelines de agregación dentro de una sola etapa en el mismo conjunto de documentos de entrada. Permite la creación de agregaciones multifacéticas capaces de caracterizar datos a través de múltiples dimensiones, o facetas, en una sola etapa.

Devuelve los documentos ordenados del más cercano al más lejano desde un punto especificado. Este método añade un campo a los documentos de salida que contiene la distancia desde el punto especificado.

Realiza una búsqueda recursiva en una colección. Este método añade un nuevo campo de matriz a cada documento de salida que contiene los resultados de la búsqueda recursiva de ese documento.

Agrupa los documentos de entrada según una expresión de identificador especificada y aplica las expresiones de acumulador, si se especifican, a cada grupo. Consume todos los documentos de entrada y genera un documento por cada grupo distinto. Los documentos de salida contienen únicamente el campo de identificador y, si se especifica, los campos acumulados.

Devuelve estadísticas sobre el uso de cada índice de la colección.

Pasa los primeros n documentos sin modificar a la canalización, donde n es el límite especificado. Para cada documento de entrada, genera un documento (para los primeros n documentos) o cero documentos (después de los primeros n documentos).

Enumera las queries muestreadas para todas las colecciones o una colección específica. Solo está disponible para colecciones con Queryable Encryption activado.

Devuelve información sobre los existentes Índices de búsqueda de MongoDB en una colección específica.

Realiza un left outer join a otra colección en la misma base de datos para filtrar documentos de la colección "unida" para su procesamiento.

Filtra el flujo de documentos para permitir que solo los documentos coincidentes pasen sin modificaciones a la siguiente etapa del pipeline. Para cada documento de entrada, se genera un documento (si hay coincidencia) o cero documentos (si no hay coincidencia).

Escribe los documentos resultantes del pipeline de agregación en una colección. Esta etapa puede incorporar los resultados en una colección de salida (insertar nuevos documentos, fusionarlos, reemplazarlos, conservar los existentes, ejecutar la operación y procesarlos con un pipeline de actualización personalizado). Para utilizar esta etapa, debe ser la última del pipeline.

Escribe los documentos resultantes de la canalización de agregación en una colección. Para utilizar esta etapa, debe ser la última etapa de la canalización.

Reestructura cada documento del flujo, por ejemplo, agregando nuevos campos o removiendo los existentes. Para cada documento de entrada, genera un documento.

Reestructura cada documento del flujo restringiendo su contenido según la información almacenada en ellos. Incorpora las funciones de $project y $match. Se puede usar para implementar la redacción a nivel de campo. Para cada documento de entrada, genera uno o cero documentos.

Reemplaza un documento con el documento incrustado específico. La operación reemplaza todos los campos existentes en el documento de entrada, incluido el campo _id. Especifique un documento incrustado en el documento de entrada para elevar el documento incrustado al nivel superior.

La etapa $replaceWith es un alias para la etapa $replaceRoot.

Reemplaza un documento con el documento incrustado específico. La operación reemplaza todos los campos existentes en el documento de entrada, incluido el campo _id. Especifique un documento incrustado en el documento de entrada para elevar el documento incrustado al nivel superior.

La etapa $replaceWith es un alias para la etapa $replaceRoot.

Selecciona aleatoriamente el número específico de documentos de su entrada.

Realiza una búsqueda de texto completo de los campos en una colección de Atlas.

Esta etapa solo está disponible para clústeres de MongoDB Atlas y no para implementaciones autogestionadas. Para obtener más información, consulte las etapas de la canalización de agregación de búsqueda de MongoDB en la documentación de Atlas.

Devuelve diferentes tipos de documentos de resultados de metadatos para la consulta de búsqueda de MongoDB en una colección Atlas.

Esta etapa solo está disponible para clústeres de MongoDB Atlas y no para implementaciones autogestionadas. Para obtener más información, consulte las etapas de la canalización de agregación de búsqueda de MongoDB en la documentación de Atlas.

Añade nuevos campos a los documentos. Al igual que el método Project(), este método modifica la forma de cada documento del flujo añadiendo nuevos campos a los documentos de salida que contienen tanto los campos existentes de los documentos de entrada como los nuevos.

Agrupa documentos en ventanas y aplica uno o más operadores a los documentos en cada ventana.

Omite los primeros n documentos (n es el número de omisión especificado) y pasa los documentos restantes sin modificar a la canalización.Para cada documento de entrada, genera cero documentos (para los primeros n documentos) o un documento (si es posterior a los primeros n documentos).

Reordena el flujo de documentos según una clave de ordenación específica. Los documentos permanecen inalterados. Por cada documento de entrada, se genera un documento de salida.

Agrupa los documentos entrantes según el valor de una expresión especificada y luego calcula el número de documentos en cada grupo distinto.

Combina los resultados de canalización de dos colecciones en un único conjunto de resultados.

Remueve/excluye campos de los documentos.

$unset es un alias para $project que elimina campos.

Deconstruye un campo de matriz a partir de los documentos de entrada para generar un documento por cada elemento. Cada documento de salida reemplaza la matriz con el valor de un elemento. Para cada documento de entrada, genera n documentos, donde n es el número de elementos de lamatriz. n puede ser cero para una matriz vacía.

Realiza una Búsqueda ANN o ENN en un vector en el campo especificado de una colección Atlas.

Esta etapa solo está disponible para clústeres de MongoDB Atlas y no para implementaciones autogestionadas. Para obtener más información, consulte Búsqueda vectorial de MongoDB.

Para obtener más información sobre cómo ensamblar una canalización de agregación, consulte Canalización de agregación en el manual de MongoDB Server.

Para obtener más información sobre los métodos y clases utilizados en esta página, consulte la siguiente documentación de API:

Volver

Agregación

En esta página