MongoDB : Comment regrouper par et compter



Vous pouvez utiliser la syntaxe suivante pour regrouper et compter dans MongoDB :

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

Notez que field_name est le champ par lequel vous souhaitez effectuer un regroupement.

Les exemples suivants montrent comment utiliser cette syntaxe avec une équipe de collection avec les documents suivants :

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})

Exemple 1 : regrouper par et compter

Nous pouvons utiliser le code suivant pour regrouper par champ « position » et compter les occurrences de chaque position.

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

Cela renvoie les résultats suivants :

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

Cela nous dit :

  • La position « En avant » apparaît 1 fois.
  • La position « Garde » apparaît 3 fois.
  • La position « Centre » apparaît 1 fois.

Exemple 2 : regrouper par et compter (puis trier)

Nous pouvons utiliser le code suivant pour compter les occurrences de chaque position et trier automatiquement les résultats par ordre croissant :

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

Cela renvoie les résultats suivants :

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

Nous pouvons utiliser -1 dans l’argument count pour trier les résultats par ordre décroissant :

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

Cela renvoie les résultats suivants :

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

Remarque : Vous pouvez trouver la documentation complète de $group ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans MongoDB :

MongoDB : Comment regrouper par et additionner
MongoDB : Comment compter les valeurs distinctes dans un champ
MongoDB : Comment regrouper par plusieurs champs

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *