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 Builder
Puedes compilar un pipeline de agregación type-safe 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.
Selecciona 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 driver .NET/C#. Para añadir estas etapas a su pipeline, emplee los objetos BsonDocument o literales de string para construir una etapa en la sintaxis de la API de query. A continuación, pasa el documento BSON al método PipelineDefinitionBuilder.AppendStage(). Esta sintaxis admite todas las etapas en el pipeline de agregación, pero no proporciona sugerencias de tipo ni seguridad de tipo.
El siguiente ejemplo de código muestra cómo agregar la etapa $unset a un pipeline de agregación vacío:
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 driver no proporciona un método builder para ella. En este caso, debe usar el BsonDocument sintaxis para agregar la etapa a tu pipeline.
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 los grandes eventos de flujo de cambios que exceden los 16 MB en fragmentos más pequeños que se devuelven en un cursor de flujo de cambios. Se puede 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 documentos en orden de más cercanos a más lejanos 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 agrega un nuevo campo de arreglo a cada documento de salida que contiene los resultados de la búsqueda recursiva para ese documento. |
| |
Agrupa los documentos de entrada mediante una expresión de identificador especificada y aplica las expresiones acumuladoras, si se especifican, a cada grupo. Consume todos los documentos de entrada y produce un documento por cada grupo distinto. Los documentos de salida solo contienen el campo de identificador y, si se especifica, los campos acumulados. |
| |
Pasa los primeros n documentos sin modificar a la pipeline, donde n es el límite especificado. Para cada documento de entrada, genera uno o ningún documento (para los primeros n documentos) o ningún documento (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. La etapa puede incorporar (insertar nuevos documentos, fusionar documentos, reemplazar documentos, conservar documentos existentes, fallar la operación, procesar documentos con una pipeline de actualización personalizada) los resultados en una colección de salida. Para usar esta etapa, debe ser la última etapa en la pipeline. |
| |
Escribe los documentos resultantes del pipeline de agregación en una colección. Para utilizar esta etapa, debe ser la última fase en el pipeline. |
| |
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 rango para combinar los resultados de una query de MongoDB Vector Search y una query de MongoDB Search. |
| |
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 MongoDB Search etapas del pipeline de agregación en la documentación de Atlas. |
| |
Devuelve diferentes tipos de documentos de resultados de metadatos para la query de MongoDB Search contra una colección de Atlas. Para obtener más información, consulte MongoDB Search etapas del pipeline de agregación en la documentación de Atlas. |
| |
Establece el valor de un campo existente. No se puede utilizar este método para agregar un nuevo campo al documento. |
| |
Agrupa documentos en ventanas y aplica uno o más operadores a los documentos en cada ventana. |
| |
Omite los primeros n documentos, donde n es el número de omisiones especificado, y pasa los documentos restantes sin modificar a la pipeline. Para cada documento de entrada, genera cero documentos (para los primeros n documentos) o un documento (después de los primeros n documentos). |
| |
Reordena el flujo de documentos mediante una clave de ordenación especificada. Los documentos permanecen sin modificar. Por cada documento de entrada, 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 del pipeline de dos colecciones en un único conjunto de resultados. |
| |
Deconstruye un campo de arreglo de los documentos de entrada para generar un documento por cada elemento. Cada documento de salida sustituye el arreglo por un valor de elemento. Para cada documento de entrada, se generan n Documentos, donde n es la cantidad de elementos del arreglo. n puede ser cero para un arreglo vacío. |
| |
Realiza una ANN o ENN búsqueda en un vector en el campo especificado de una colección de Atlas. Para aprender más, MongoDB Vector Search. |
|
Documentación de la API
Para obtener más información sobre cómo ensamblar un pipeline de agregación, consulta Pipeline de agregación en el manual del servidor MongoDB.
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, consulta la siguiente documentación de la API: