Les résultats renvoyés par le pipeline d'agrégation ne sont que des objets simples. Vous effectuez donc le tri en tant qu'étape de pipeline, et non en tant qu'opération distincte :
Recommend.aggregate(
[
// Grouping pipeline
{ "$group": {
"_id": '$roomId',
"recommendCount": { "$sum": 1 }
}},
// Sorting pipeline
{ "$sort": { "recommendCount": -1 } },
// Optionally limit results
{ "$limit": 5 }
],
function(err,result) {
// Result is an array of documents
}
);
Il existe donc différents opérateurs de pipeline qui peuvent être utilisés pour $group
ou $sort
ou $limit
et d'autres choses aussi. Ceux-ci peuvent être présentés dans n'importe quel ordre et autant de fois que nécessaire. Il suffit de comprendre qu'une étape de « pipeline » entraîne les résultats dans la suivante sur laquelle agir.