Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Operações de agregação

Nesta página

  • Aggregation Pipelines
  • Métodos de agregação de finalidade única

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:

  • Aggregation pipelines, considerado o método principal para realizar agregações.

  • Métodos de agregação de finalidade única, que são simples, mas não têm os recursos de um pipeline de agregação.

Um aggregation pipeline 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.

A partir do MongoDB 4.2, você pode atualizar documentos com um pipeline de agregação se usar os estágios mostrados em 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 aggregation pipeline.

Para saber mais sobre aggregation pipelines, consulte Aggregation Pipeline.

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

Método
Descrição
db.collection.estimatedDocumentCount()
Gera uma contagem aproximada dos documentos em uma collection ou visualização.
Gera uma contagem do número de documentos em uma collection ou visualização.
Gera uma matriz de documentos com valores distintos para o campo especificado.
← Cursores rastreáveis