Los resultados devueltos por la canalización de agregación son solo objetos simples. Así que haces la clasificación como una etapa de canalización, no como una operación 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
}
);
Entonces, hay varios operadores de canalización que se pueden usar para $group
o $sort
o $limit
y otras cosas también. Estos se pueden presentar en cualquier orden y tantas veces como sea necesario. Solo entendiendo que una etapa de "canalización" fluye hacia la siguiente para actuar.