Mongodb: como agrupar e contar


Você pode usar a seguinte sintaxe para agrupar e contar no MongoDB:

 db.collection.aggregate([
    { $group : { _id : " $field_name ", count :{ $sum :1}}}
])

Observe que field_name é o campo pelo qual você deseja agrupar.

Os exemplos a seguir mostram como usar essa sintaxe com uma equipe de cobrança com os seguintes documentos:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Exemplo 1: agrupar e contar

Podemos usar o código a seguir para agrupar por campo “posição” e contar as ocorrências de cada posição.

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum :1}}}
])

Isso retorna os seguintes resultados:

 { _id: ' Forward ', count: 1 }
{ _id: ' Guard ', count: 3 }
{ _id: ' Center ', count: 1 }

Isso nos diz:

  • A posição “Avançar” aparece 1 vez.
  • A posição “Guarda” aparece 3 vezes.
  • A posição “Centro” aparece 1 vez.

Exemplo 2: agrupar e contar (depois classificar)

Podemos usar o código a seguir para contar as ocorrências de cada posição e classificar automaticamente os resultados em ordem crescente :

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum :1}}},
    { $sort : { count : 1}} 
])

Isso retorna os seguintes resultados:

 { _id: ' Forward ', count: 1 }
{ _id: ' Center ', count: 1 }
{ _id: ' Guard ', count: 3 }

Podemos usar -1 no argumento count para classificar os resultados em ordem decrescente :

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum :1}}},
    { $sort : { count :-1}} 
])

Isso retorna os seguintes resultados:

 { _id: ' Guard ', count: 3 }
{ _id: ' Forward ', count: 1 }
{ _id: ' Center ', count: 1 }

Nota : Você pode encontrar a documentação completa do $group aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no MongoDB:

MongoDB: Como agrupar e somar
MongoDB: Como contar valores distintos em um campo
MongoDB: Como agrupar por vários campos

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *