Le pipeline est un framework qui permet - comme son nom l'indique - d'enchaîner des actions pour transformer et traiter les résultats de requêtes spécifiques.
La commande utilisée est :
db.collection.aggregate(pipeline, options)
Parmi les options possibles :
Exemple :
> db.movies.aggregate([
{$match: { genre: "Action" }},
{$project: { year: 1, countActors: { $size: "$actors" } , _id: 0 }},
{$sort: { countActors: -1 }}
])
Exemple en utilisant match et group :
> db.orders.aggregate([
{$match: { status: "A" }},
{$group: {
_id: "$cust_id",
total: { $sum: "$amount" }
}}
])
Exemple en utilisant project et sort :
> db.users.aggregate([
{$project: { name: { $toUpper: "$_id" } , _id: 0 }},
{$sort: { name: 1 }}
])
Autre exemple :
> db.users.aggregate([
{ $unwind : "$likes" },
{ $group : { _id : "$likes" , number : { $sum : 1 } } },
{ $sort : { number : -1 } },
{ $limit : 5 }
])