Tổng hợp dữ liệu với $group và $sum
Sử dụng stage $group với accumulator $sum để tính tổng giá trị trường trên toàn collection hoặc theo nhóm.
Dữ liệu số tiền
> db.demo337.insertOne({"Amount": 100});
> db.demo337.insertOne({"Amount": 500});
> db.demo337.insertOne({"Amount": 400});
Tính tổng Amount
> db.demo337.aggregate([
{
$group: {
_id: null,
totalAmount: { $sum: "$Amount" }
}
}
]);
Kết quả
{ "_id": null, "totalAmount": 1000 }
Các biến thể $sum:
{ $sum: "$field" }: Tổng giá trị trường{ $sum: 1 }: Đếm số document (count){ $sum: { $multiply: ["$price", "$qty"] } }: Tổng biểu thức
Nhóm theo trường: Thay _id: null bằng _id: "$category" để tính tổng theo nhóm.