Die von der Aggregationspipeline zurückgegebenen Ergebnisse sind nur einfache Objekte. Sie führen das Sortieren also als Pipeline-Phase durch, nicht als separate Operation:
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
}
);
Es gibt also verschiedene Pipeline-Operatoren, die für $group
verwendet werden können oder $sort
oder $limit
und andere Dinge auch. Diese können in beliebiger Reihenfolge und so oft wie nötig präsentiert werden. Nur zu verstehen, dass eine "Pipeline"-Phase Ergebnisse in die nächste einfließen lässt, um darauf zu reagieren.