I risultati restituiti dalla pipeline di aggregazione sono solo oggetti semplici. Quindi esegui l'ordinamento come una fase della pipeline, non come un'operazione separata:
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
}
);
Quindi ci sono vari operatori di pipeline che possono essere utilizzati per $group
o $sort
o $limit
e anche altre cose. Questi possono essere presentati in qualsiasi ordine e tutte le volte che è necessario. Il solo fatto di capire che una fase di "conduttura" fluisce nella successiva su cui agire.