Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tổng giá trị trường trong MongoDB với aggregate và $match

Tính tổng có điều kiện bằng $match và $group

Kết hợp $match (lọc) và $group với $sum để tính tổng giá trị của nhóm document thỏa mãn điều kiện.

Dữ liệu điểm thi

> db.demo329.insertOne({"Name": "Chris", "Age": 21, "Marks": 45});
> db.demo329.insertOne({"Name": "David", "Age": 21, "Marks": 56});
> db.demo329.insertOne({"Name": "Mike", "Age": 21, "Marks": 78});
> db.demo329.insertOne({"Name": "David", "Age": 21, "Marks": 89});

Tổng điểm của David (Age=21)

> db.demo329.aggregate([
    {
        $match: {
            $and: [
                { 'Name': 'David' },
                { Age: 21 }
            ]
        }
    },
    {
        $group: {
            _id: null,
            TotalMarks: { $sum: "$Marks" }
        }
    }
]);

Kết quả

{ "_id": null, "TotalMarks": 145 }

Giải thích: 56 + 89 = 145. _id: null nhóm tất cả document khớp thành một nhóm duy nhất.