Visão geral
Nesta página, você pode aprender como criar um pipeline de agregação e estágios de pipeline usando métodos no Driver .NET/C#.
Criar um pipeline de agregação
Você pode usar o driver .NET/C# para construir um pipeline de agregação utilizando métodos de construtor ou documentos BSON. Consulte as seções a seguir para saber mais sobre cada uma dessas abordagens.
Métodos do construtor
Você pode criar um pipeline de agregação seguro para o tipo das seguintes maneiras:
Construa um objeto
EmptyPipelineDefinition<TDocument>
. Chamadas em cadeia deste objeto para os métodos de agregação relevantes. Em seguida, passe o objeto de pipeline para o métodoIMongoCollection<TDocument>.Aggregate()
.Chame o método
IMongoCollection<TDocument>.Aggregate()
. Chamadas em cadeia deste método chamam para os métodos de agregação relevantes.
Selecione a aba EmptyPipelineDefinition ou Aggregate para ver o código correspondente para cada abordagem:
// 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
Alguns estágios de agregação não têm métodos correspondentes no driver .NET/C#. Para adicionar esses estágios ao seu pipeline, use objetos BsonDocument
ou literais de string para construir um estágio na sintaxe da API de query. Em seguida, passe o documento BSON para o método PipelineDefinitionBuilder.AppendStage()
. Essa sintaxe é compatível com todos os estágios do agregação pipeline, mas não fornece dicas de tipo ou segurança de tipo.
O seguinte exemplo de código mostra como adicionar o estágio $unset
a um pipeline de agregação vazio:
var pipeline = new EmptyPipelineDefinition<BsonDocument>() .AppendStage<BsonDocument, BsonDocument, BsonDocument>("{ $unset: 'field1' }");
Importante
Se você usar um BsonDocument
para definir um estágio de pipeline, o driver não reconhecerá nenhum atributo BsonClassMap
, atributos de serialização ou convenções de serialização . Os nomes de campo que você utiliza no BsonDocument
devem corresponder aos nomes de campo armazenados no MongoDB Server.
Métodos de estágio de agregação
A tabela a seguir lista os métodos de construtor no Driver .NET/C# que correspondem a estágios no pipeline de agregação . Para saber mais sobre um estágio de agregação e ver um exemplo de código para o método C# equivalente, siga o link do nome do estágio para sua página de referência no manual do MongoDB Server .
Se um estágio de agregação não estiver na tabela, o driver não fornecerá um método construtor para ele. Nesse caso, você deve usar a sintaxe BsonDocument para adicionar o estágio ao seu pipeline.
Estágio de agregação | Descrição | Método Builder |
---|---|---|
Categoriza documentos recebidos em grupos, chamados blocos, com base em uma expressão especificada e limites de blocos. |
| |
Categoriza documentos recebidos em um número específico de grupos, chamados blocos, com base em uma expressão especificada. Os limites dos compartimentos são determinados automaticamente em uma tentativa de distribuir uniformemente os documentos no número especificado de compartimentos. |
| |
Retorna um cursor de fluxo de alterações para a coleção. Esse estágio pode ocorrer apenas uma vez em um pipeline de agregação e deve ocorrer como o primeiro estágio. |
| |
Divide change stream grandes que excedem 16 MB em fragmentos menores retornados em um cursor de change stream de alterações. Você pode usar o |
| |
Retorna uma contagem do número de documentos nesta etapa do pipeline de agregação. |
| |
Cria novos documentos em uma sequência de documentos onde determinados valores em um campo estão faltando. |
| |
Retorna documentos literais de expressões de entrada. |
| |
Processa vários pipelines de agregação em uma única fase no mesmo conjunto de documentos de entrada. Permite a criação de agregações multifacetadas capazes de caracterizar dados em várias dimensões, ou facets, em um único estágio. |
| |
Executa uma pesquisa recursiva em uma coleção. Este método adiciona um novo campo de array a cada documento de saída que contém os resultados transversais da pesquisa recursiva para esse documento. |
| |
Agrupa documentos de entrada por uma expressão de identificador especificada e aplica as expressões acumulador , se especificadas, a cada grupo. Consome todos os documentos de entrada e gera um documento por cada grupo distinto. Os documentos de saída contêm apenas o campo identificador e, se especificado, campos acumulados. |
| |
Passa os primeiros n documentos não modificados para o pipeline, onde n é o limite especificado. Para cada documento de entrada, gera um documento (para os primeiros n documentos) ou zero documentos (após os primeiros n documentos). |
| |
Executa uma junção externa esquerda a outra collection no mesmo banco de dados para filtrar documentos da collection "associada" para processamento. |
| |
Filtra o fluxo de documentos para permitir que apenas documentos correspondentes passem sem modificações para o próximo estágio do pipeline. Para cada documento de entrada, gera um documento (uma correspondência) ou zero documentos (nenhuma correspondência). |
| |
Escreve os documentos resultantes do agregação pipeline em uma coleção. O estágio pode incorporar (inserir novos documentos, mesclar documentos, substituir documentos, manter documentos existentes, falhar na operação, processar documentos com um pipeline de atualização personalizado) os resultados em uma coleção de saída. Para usar esse estágio, ele deve ser o último estágio do pipeline. |
| |
Escreve os documentos resultantes do agregação pipeline em uma coleção. Para usar esse estágio, ele deve ser o último estágio do pipeline. |
| |
Remodela cada documento no fluxo, adicionando novos campos ou removendo campos existentes. Para cada documento de entrada, gera um documento. |
| |
Substitui um documento pelo documento incorporado especificado. A operação substitui todos os campos existentes no documento de entrada, incluindo o campo O estágio |
| |
Substitui um documento pelo documento incorporado especificado. A operação substitui todos os campos existentes no documento de entrada, incluindo o campo O estágio |
| |
Seleciona aleatoriamente o número especificado de documentos de sua entrada. |
| |
Realiza uma Full Text Search do campo ou campos em uma coleção do Atlas. Esse estágio está disponível apenas para clusters do MongoDB Atlas , e não está disponível para implementações autogerenciadas. Para saber mais, consulte Estágios de aggregation pipeline do Atlas Search na documentação do Atlas. |
| |
Retorna diferentes tipos de documentos de resultado de metadados para a query Pesquisa do Atlas em relação a uma coleção do Atlas. Esse estágio está disponível apenas para clusters do MongoDB Atlas , e não está disponível para implementações autogerenciadas. Para saber mais, consulte Estágios de aggregation pipeline do Atlas Search na documentação do Atlas. |
| |
Adiciona novos campos aos documentos. Como o método |
| |
Agrupa documentos em janelas e aplica um ou mais operadores aos documentos em cada janela. |
| |
Ignora os primeiros n documentos, onde n é o número de pulos especificado, e passa os documentos restantes sem modificações para o pipeline. Para cada documento de entrada, produz zero documentos (para os primeiros n documentos) ou um documento (se após os primeiros n documentos). |
| |
Reordena o fluxo de documento por uma chave de classificação especificada. Os documentos permanecem inalterados. Para cada documento de entrada, gera um documento. |
| |
Agrupa documentos recebidos com base no valor de uma expressão especificada e, em seguida, calcula a contagem de documentos em cada grupo distinto. |
| |
Combina os resultados do pipeline de duas collections em um único conjunto de resultados. |
| |
Desconstrói um campo de array a partir dos documentos de entrada para gerar um documento para cada elemento. Cada documento de saída substitui a array por um valor de elemento. Para cada documento de entrada, produz n Documentos, onde n é o número de elementos de array. n pode ser zero para uma array vazia. |
| |
Executa uma pesquisa ANN em um vetor no campo especificado de uma coleção Atlas . Esse estágio está disponível apenas para clusters do MongoDB Atlas , e não está disponível para implementações autogerenciadas. |
|
Documentação da API
Para saber mais sobre como montar um pipeline de agregação, consulte Aggregation Pipeline no manual do MongoDB Server.
Para saber mais sobre como criar estágios de pipeline, consulte Estágios de agregação no manual do MongoDB Server .
Para obter mais informações sobre os métodos e as classes usadas nesta página, consulte a seguinte documentação da API: