Kết quả trả về từ đường ống tổng hợp chỉ là các đối tượng đơn giản. Vì vậy, bạn thực hiện phân loại như một giai đoạn đường ống, không phải như một hoạt động riêng biệt:
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
}
);
Vì vậy, có nhiều toán tử đường ống khác nhau có thể được sử dụng để $group
hoặc $sort
hoặc $limit
và những thứ khác nữa. Chúng có thể được trình bày theo bất kỳ thứ tự nào và nhiều lần theo yêu cầu. Chỉ cần hiểu rằng một giai đoạn "đường ống" sẽ dẫn đến giai đoạn tiếp theo để hành động.