Ответ 1
Результаты, возвращаемые из конвейера агрегации, представляют собой простые объекты. Таким образом, вы выполняете сортировку как этап конвейера, а не как отдельную операцию:
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
}
);
Таким образом, существуют различные операторы конвейера, которые можно использовать для $group
или $sort
или $limit
и другие вещи. Они могут быть представлены в любом порядке и столько раз, сколько требуется. Просто понимая, что один поток "конвейерного" потока приводит к следующему действию.