Um pipeline de agregação consiste em um ou mais estágios que processam documentos. Esses documentos podem vir de uma collection, uma visualização ou um estágio especialmente projetado.
Cada estágio executa uma operação nos documentos de entrada. Por exemplo, um estágio pode $filter documentos, $group documentos e calcular valores. Os documentos gerados de um estágio são então passados para o próximo estágio no pipeline.
Um pipeline de agregação pode retornar resultados para grupos de documentos. Você também pode atualizar documentos com um pipeline de agregação usando os estágios mostrados em Atualizações com Pipeline de Agregação.
Observação
Os pipelines de agregação executados com o método db.collection.aggregate() não modificam documentos em uma coleção, a menos que o pipeline contenha um estágio $merge ou $out.
Você pode executar pipelines de agregação na IU para sistemas hospedados no MongoDB Atlas.
Ao executar aggregation pipeline em implantações do MongoDB Atlas na UI do MongoDB Atlas, você pode visualizar os resultados em cada estágio.
Exemplos de Pipeline de Agregação Completo
A seção Tutoriais completos do pipeline de agregação contém tutoriais passo a passo para tarefas comuns de agregação, com exemplos para o MongoDB Shell e cada um dos drivers oficiais do MongoDB.
Execute um Pipeline de Agregação
Para executar um aggregation pipeline, use:
Detalhes Adicionais do Estágio de Pipeline de Agregação
Um aggregation pipeline possui um ou mais estágios que processam documentos:
Um estágio não precisa gerar um documento para cada documento de entrada. Alguns estágios produzem novos documentos ou filtram documentos.
Para todos os estágios de aggregation, consulte Estágios de aggregation.
Expressões e operadores
Em pipelines de agregação , as expressões definem como o estágio processa cada documento de entrada no pipeline. Por exemplo, expressões podem definir quais documentos incluir, como remodelar campos ou como calcular novos valores.
Alguns estágios do pipeline de agregação aceitam expressões. Os operadores calculam valores com base em expressões de entrada.
Na MongoDB Query Language, você pode criar expressões a partir dos seguintes componentes:
Componente | Exemplo |
|---|---|
Constantes |
|
Operadores | |
Expressões de caminho de campo |
|
Por exemplo, { $add: [ 3, "$inventory.total" ] } é uma expressão que consiste no operador $add e dois operandos:
A constante
3A expressão do caminho do campo
"$inventory.total"
A expressão retorna o resultado da adição de 3 ao valor no caminho inventory.total do documento de entrada.
Observação
Acessando índices de elementos de array em $map, $filter e $reduce
O MongoDB 8.3 melhora o acesso aos índices dos elementos de array nas expressões de agregação $map, $filter e $reduce. Você pode usar o novo campo arrayIndexAs para definir uma variável para armazenar o índice de um elemento de array. Você também pode usar a nova variável de sistema de agregação $$IDX para acessar o índice do elemento de array atual se omitir arrayIndexAs.
Caminhos do campo
Expressões de caminho do campo acessam campos em documentos de entrada. Prefixe o nome do campo com um cifrão $. Por exemplo, "$user" referencia o campo user e "$user.name" referencia o campo incorporado user.name.
Para mais exemplos, veja Caminhos do Campo.
Atualizar documentos usando um aggregation pipeline
Para atualizar documentos com um pipeline de agregação, use:
Outras Considerações
Limitações de Pipeline de Agregação
Para limites em tipos de valor e tamanho do resultado, consulte Limites de pipeline de agregação.
Pipelines de Agregação e Coleções Fragmentadas
Os pipelines de agregação oferecem suporte a operações em coleções fragmentadas. Consulte Pipeline de agregação e coleções fragmentadas.
Importante
Pipelines de Agregação como uma Alternativa ao Map-Reduce
A partir do MongoDB,5.0 map-reduce está obsoleto.
Para obter exemplos de alternativas de aggregation pipeline para map-reduce, consulte:
Saiba mais
Para saber mais sobre pipelines de agregação, consulte: