Concept :
Les pipelines d'agrégation MongoDB permettent de traiter des données via une séquence d'étapes (stages), transformant les documents en résultats agrégés. Chaque étape reçoit les documents de l'étape précédente et les modifie.
Structure :
db.collection.aggregate([
{ stage1 },
{ stage2 },
...
])
Étapes Fondamentales :
$match : Filtre les documents (équivalent de find()).$project : Sélectionne/renomme/calcule des champs.$sort : Trie les documents.$limit / $skip : Paginate les résultats.Exemple :
db.orders.aggregate([
{ $match: { status: "completed" } },
{ $project: { total: 1, customer: 1 } },
{ $sort: { total: -1 } },
{ $limit: 10 }
])
$lookup (Jointures)Usage : Jointure entre collections (équivalent SQL LEFT JOIN).
Syntaxe :
{
$lookup: {
from: "collection_cible",
localField: "champ_local",
foreignField: "champ_étranger",
as: "champ_résultat"
}
}
Exemple :
db.orders.aggregate([
{
$lookup: {
from: "customers",
localField: "customerId",
foreignField: "_id",
as: "customerDetails"
}
}
])