Os resultados retornados do pipeline de agregação são apenas objetos simples. Então você faz a classificação como um estágio de pipeline, não como uma operação separada:
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
}
);
Portanto, existem vários operadores de pipeline que podem ser usados para
$group
ou $sort
ou $limit
e outras coisas também. Estes podem ser apresentados em qualquer ordem e quantas vezes forem necessárias. Apenas entender que um estágio de "pipeline" flui para o próximo para agir.