Overview
En esta página, puede aprender a crear una canalización de agregación y etapas de canalización mediante métodos en el controlador .NET/C#.
Compilar un pipeline de agregación
Puede usar el controlador .NET/C# para crear una canalización de agregación mediante métodos de compilación o documentos BSON. Consulte las siguientes secciones para obtener más información sobre cada uno de estos enfoques.
Métodos de construcción
Puede crear una canalización de agregación de tipos seguros de las siguientes maneras:
Construir un
EmptyPipelineDefinition<TDocument>Objeto. Encadena las llamadas desde este objeto a los métodos de agregación relevantes. Luego, pasa el objeto de canalización al métodoIMongoCollection<TDocument>.Aggregate().Llamar al método
IMongoCollection<TDocument>.Aggregate(). Encadenar las llamadas desde este método a los métodos de agregación relevantes.
Seleccione el EmptyPipelineDefinition o la pestaña Aggregate para ver el código correspondiente a cada enfoque:
// Defines the aggregation pipeline var pipeline = new EmptyPipelineDefinition<Movie>() .Match(...) .Group(...) .Merge(...); // Executes the aggregation pipeline var results = collection.Aggregate(pipeline);
// Defines and executes the aggregation pipeline var results = collection.Aggregate() .Match(...) .Group(...) .Merge(...);
Documento Bson
Algunas etapas de agregación no tienen métodos correspondientes en el controlador .NET/C#. Para añadir estas etapas a su canalización, utilice objetos BsonDocument o literales de cadena para construir una etapa con la sintaxis de la API de consulta. A continuación, pase el documento BSON al método PipelineDefinitionBuilder.AppendStage(). Esta sintaxis admite todas las etapas de la canalización de agregación, pero no proporciona sugerencias de tipo ni seguridad de tipos.
El siguiente ejemplo de código muestra cómo agregar la etapa $unset a una canalización de agregación vacía:
var pipeline = new EmptyPipelineDefinition<BsonDocument>() .AppendStage<BsonDocument, BsonDocument, BsonDocument>("{ $unset: 'field1' }");
Importante
Si usa un BsonDocument para definir una etapa de canalización, el controlador no reconoce ningún atributo BsonClassMap, atributo de serialización ni convención de serialización. Los nombres de campo que use en el BsonDocument deben coincidir con los nombres de campo almacenados en MongoDB Server.
Métodos de la etapa de agregación
La siguiente tabla enumera los métodos de compilación del controlador .NET/C# que corresponden a las etapas de la canalización de agregación. Para obtener más información sobre una etapa de agregación y ver un ejemplo de código del método de C# equivalente, siga el enlace desde el nombre de la etapa a su página de referencia en el manual de MongoDB Server.
Si una etapa de agregación no está en la tabla, el controlador no proporciona un método de generación para ella. En este caso, debe usar el Sintaxis deBsonDocument para agregar la etapa a su canalización.
Etapa de agregación | Descripción | Método del constructor |
|---|---|---|
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. Esta etapa solo puede ocurrir una vez en una canalización de agregación y debe ser la primera. |
| |
Divide eventos de flujo de cambios grandes que superan 16 MB en fragmentos más pequeños devueltos en un cursor de flujo de cambios. Solo puedes usar |
| |
Devuelve un recuento del número de documentos en esta etapa del pipeline de agregació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. |
| |
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). |
| |
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. |
| |
Utiliza un algoritmo de fusión de rangos para combinar los resultados de una consulta de búsqueda vectorial de MongoDB y una consulta de búsqueda de MongoDB. |
| |
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 La etapa |
| |
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 La etapa |
| |
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. Para obtener más información, consulte 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. Para obtener más información, consulte 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 |
| |
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. |
| |
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. Para obtener más información, consulte Búsqueda vectorial de MongoDB. |
|
Documentación de la API
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 cómo crear etapas de canalización, consulte Etapas 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: