Menu Docs
Página inicial do Docs
/
Manual do MongoDB

Operações de agregação

Nesta página

  • Aggregation Pipelines
  • Métodos de agregação de finalidade específica

Operações de agregação processam diversos documentos e geram resultados calculados. Você pode usar operações de agregação para:

  • Agrupar valores de diversos documentos.

  • Executar operações nos dados agrupados para gerar um único resultado.

  • Analisar alterações de dados ao longo do tempo.

Para realizar operações de agregação, você pode usar:

  • Pipelines de agregação, considerado o método principal para realizar agregações.

  • Métodos de agregação de finalidade específica, considerados simples, mas não possuem os mesmos recursos de um 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

O exemplo de aggregation pipeline abaixo contém dois estágios e retorna a quantidade total do pedido de pizzas médias agrupadas pelo nome da pizza:

db.orders.aggregate( [
// Stage 1: Filter pizza order documents by pizza size
{
$match: { size: "medium" }
},
// Stage 2: Group remaining documents by pizza name and calculate total quantity
{
$group: { _id: "$name", totalQuantity: { $sum: "$quantity" } }
}
] )

O estágio $match:

  • Filtra os documentos de pedido de pizza em pizzas com um size de medium.

  • Repassa os documentos restantes para o estágio $group.

O estágio $group:

  • Agrupa os documentos restantes por name da pizza.

  • Utiliza $sum para calcular a quantity total do pedido para cada pizza de name. O total é armazenado no campo totalQuantity retornado pelo aggregation pipeline.

Para exemplos executáveis que contêm exemplos de documentos de input, consulte Exemplos completos de pipeline de agregação.

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

Os métodos de agregação de finalidade específica agregam documentos a partir de uma única coleção. Os métodos são simples, mas não possuem os mesmos recursos de um pipeline de agregação.

Método
Descrição
Gera uma contagem aproximada dos documentos em uma coleção ou visualização.
Gera uma contagem do número de documentos em uma coleção ou visualização.
Gera uma array de documentos com valores distintos para o campo especificado.

Voltar

Cursores persistentes