Menu Docs
Página inicial do Docs
/
Manual do banco de dados

Operações de agregação

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.

  • Consulte a versão mais atualizada dos seus dados.

Ao usar os operadores de agregação integrados no MongoDB, você pode realizar análises em seu cluster sem precisar mover seus dados para outra plataforma.

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.

Você pode executar pipelines de agregação na IU para sistemas hospedados no MongoDB Atlas.

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.

O exemplo de pipeline a seguir usa documentos dos dados de amostra disponíveis no MongoDB Atlas, especificamente a collection sample_training.routes . Neste pipeline, encontraremos as três principais companhias aéreas que oferecem a maior parte devoos diretos do aeroporto de Oregon, EUA (PDX).

Primeiro, adicione um estágio $match para filtrar os documentos para períodos que têm um valor src_airport de PDX e zero stops:

{
$match : {
"src_airport" : "PDX",
"stops" : 0
}
}

O estágio $match reduz o número de documentos em nosso pipeline de 66,985 para 113. Em seguida, $group os documentos por nome da companhia aérea e conte o número de voos:

{
$group : {
_id : {
"airline name": "$airline.name",
}
count : {
$sum : 1
}
}
}

O estágio $group reduz o número de documentos no pipeline para 16 companhias aéreas. Para encontrar as companhias aéreas com a maior parte dos voos, use o estágio $sort para classificar os documentos restantes em ordem decrescente:

{
$sort : {
count : -1
}
}

Depois de classificar seus documentos, use o estágio $limit para retornar as três principais companhias aéreas que oferecem a maioria dos voos diretos para fora do PDX:

{
$limit : 3
}

Depois de inserir os documentos na coleção sample_training.routes por meio desse pipeline de agregação , as três principais companhias aéreas que oferecemvoos sem escalas de PDX são a Alasca, a American e a Estados Unidos, comvoos 39, 17 e 13, respectivamente .

O pipeline completo se assemelha ao seguinte:

db.routes.aggregate( [
{
$match : {
"src_airport" : "PDX",
"stops" : 0
}
},
{
$group : {
_id : {
"airline name": "$airline.name",
}
count : {
$sum: 1
}
}
},
{
$sort : {
count : -1
}
},
{
$limit : 3
}
] )

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

Referências de banco de dados

Receber um selo de habilidade

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

Saiba mais

Nesta página