Études de cas et exemples pratiques

Exemple 1 : Calcul de la somme et de la moyenne des ventes par produit

db.ventes.aggregate([
  { $group: { _id: "$produit", total_ventes: { $sum: "$montant" }, moyenne_ventes: { $avg: "$montant" } } },
  { $sort: { total_ventes: -1 } }
])

Ce pipeline regroupe les ventes par produit, calcule la somme totale et la moyenne des montants, puis trie les résultats par ventes totales.

Exemple 2 : Liste des clients par groupe d'âge

db.clients.aggregate([
  { $group: { _id: { age: "$age" }, clients: { $push: "$nom" }, total_clients: { $sum: 1 } } },
  { $sort: { "_id.age": 1 } }
])

Ce pipeline regroupe les clients par âge, retourne une liste des noms et compte le nombre de clients dans chaque groupe d'âge.

Exemple 3 : Extraction des articles les plus vendus

db.articles.aggregate([
  { $match: { "date_vente": { $gte: ISODate("2023-01-01") } } },
  { $group: { _id: "$produit", total_vendus: { $sum: "$quantité" } } },
  { $sort: { total_vendus: -1 } },
  { $limit: 10 }
])

Ce pipeline extrait les 10 articles les plus vendus depuis le 1er janvier 2023.

Last updated