Tổng hợp các hoạt động xử lý hồ sơ dữ liệu và trả về kết quả đã tính toán. Thao tác tổng hợp nhóm các giá trị từ nhiều tài liệu lại với nhau và có thể thực hiện nhiều thao tác khác nhau trên dữ liệu được nhóm để trả về một kết quả duy nhất.
Hãy thử cái này -
collection.aggregate([
{ $unwind: "$items" },
{ $sort: { "items.order": 1 } },
{ $group: { _id: "$_id", items: { $push: "$items" } } }
]);
Tập hợp sau sử dụng giai đoạn $ unwind để xuất tài liệu cho mỗi phần tử trong mảng kích thước:
Giai đoạn Pipeline $ sort (tổng hợp):- Sắp xếp tất cả các tài liệu đầu vào và chuyển chúng trở lại đường dẫn theo thứ tự đã sắp xếp.
Giai đoạn $ sort có dạng nguyên mẫu sau:
{ $sort: { <field1>: <sort order>, <field2>: <sort order> ... } }
Giai đoạn Pipeline $ group (tổng hợp):- Nhóm các tài liệu theo cách diễn đạt cụ thể và xuất sang giai đoạn tiếp theo một tài liệu cho từng nhóm riêng biệt. Các tài liệu đầu ra chứa trường _id chứa nhóm riêng biệt theo khóa. $ group không sắp xếp tài liệu đầu ra của nó.
Vòng nhóm $ có dạng nguyên mẫu sau:
{ $group: { _id: <expression>, <field1>: { <accumulator1> :
<expression1> }, ... } }
Để tham khảo thêm, hãy xem liên kết này - https://docs.mongodb .com / manual / reference / method / db.collection.aggregate /