Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/

Pipeline de agregação

Um pipeline de agregação possui um ou mais estágios que processam documentos:

  • Cada estágio executa uma operação nos documentos de entrada. Por exemplo, um estágio pode filtrar documentos, agrupar documentos e calcular valores.

  • Os documentos vão de um estágio para outro.

  • Um aggregation pipeline pode retornar resultados para grupos de documentos. Por exemplo, retornar o valor total, médio, máximo e mínimo.

É possível atualizar documentos com um pipeline de agregação se você usar os estágios mostrados na página Atualizações com pipeline de agregação.

Observação

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.

A seção Tutoriais completos do pipeline de agregação contém tutoriais completos que fornecem explicações detalhadas de tarefas comuns de agregação em um formato passo a passo. Os tutoriais incluem exemplos para o shell do MongoDB e cada um dos drivers oficiais do MongoDB.

Um aggregation pipeline possui um ou mais estágios que processam documentos:

  • Um estágio não precisa produzir um documento para cada documento de entrada. Por exemplo, algumas etapas podem produzir novos documentos ou filtrar documentos.

  • O mesmo estágio pode aparecer várias vezes no pipeline com as seguintes exceções de estágio: $out, $merge e $geoNear.

  • Para calcular médias e executar outros cálculos em um estágio, utilize expressões de aggregation que especificam operadores de aggregation. Você aprenderá mais sobre expressões de aggregation na próxima seção.

Para todos os estágios de agregação, consulte Estágios do pipeline de agregação.

Alguns estágios do aggregation pipeline aceitam uma expressão de aggregation, que:

Você pode utilizar os operadores de agregação $accumulator e $function para definir expressões de agregação personalizadas no JavaScript.

Para todas as expressões de agregação, consulte Expressões.

Expressões de caminho do campo são usadas para acessar campos em documentos de entrada. Para especificar um caminho do campo, prefixe o nome do campo ou o caminho do campo pontilhado (se o campo estiver em um documento incorporado) com um cifrão $. Por exemplo, "$user" para especificar o caminho do campo user ou "$user.name" para especificar o caminho para o campo incorporado "user.name".

"$<field>" é equivalente a "$$CURRENT.<field>", em que CURRENT é uma variável de sistema cujo padrão é a raiz do objeto atual, a menos que seja indicado o contrário em estágios específicos.

Para mais informações e exemplos, veja Caminhos do Campo.

Para executar um aggregation pipeline, use:

Para atualizar documentos com um pipeline de agregação, use:

Comando
mongosh Métodos

Um aggregation pipeline tem limitações nos tipos de valor e no tamanho do resultado. Consulte Limites de aggregation pipeline.

Um aggregation pipeline oferece suporte a operações em collections fragmentadas. Consulte Pipeline de aggregation e collections fragmentadas.

A partir do MongoDB 5.0, map-reduce está obsoleto:

  • Em vez de map-reduce, você deve usar um pipeline de agregação. pipeline de agregação fornece melhor desempenho e usabilidade do que a redução de mapa.

  • Você pode reescrever operações de map-reduce utilizando aggregation pipeline stages, como $group, $merge e outros.

  • Nas operações de map-reduce que exigem funcionalidade personalizada, você pode usar os operadores de agregação $accumulator e $function. Você pode usar esses operadores para definir expressões de agregação personalizadas no JavaScript.

Para obter exemplos de alternativas de aggregation pipeline para map-reduce, consulte:

Para saber mais sobre pipelines de agregação, consulte:

Voltar

Operações de agregação

Receber um selo de habilidade

Domine "Os fundamentos da transformação de dados" gratuitamente!

Saiba mais

Nesta página