$group

MongoDB 🟡 Mid

Définition

Stage d'aggregation qui regroupe les documents par une clé (_id) et applique des accumulateurs ($sum, $avg, $max, $min, $push, $first). Équivalent du GROUP BY en SQL.

Analogie

Trier des billes par couleur dans des bols différents, puis compter combien il y en a dans chaque bol.

Exemple de code

{ $group: {
  _id: '$category',
  count: { $sum: 1 },
  avgPrice: { $avg: '$price' },
  items: { $push: '$name' }
}}

Cas d'usage

Calculer des métriques agrégées par catégorie, utilisateur, période ou tout autre critère de regroupement.

#sgbd#interview#database#mongodb

En entretien

  1. Explique-moi le stage $group.

    C'est un stage d'agrégation qui regroupe les documents par une clé (_id) et applique des accumulateurs comme $sum, $avg, $max, $min ou $push, l'équivalent du GROUP BY en SQL. On l'utilise pour calculer des métriques agrégées par catégorie, utilisateur ou période.

  2. Comment tu debuggerais un $group qui traite trop de documents ?

    Je vérifierais qu'un $match filtre bien en amont, car un $match placé après un $group non filtré traite des millions de documents inutilement. Il faut toujours filtrer le plus tôt possible dans le pipeline.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre