Dùng aggregation framework. Tạo collection với sub-document:
> db.sumEveryFieldDemo.insertOne(
{
"_id":101,
"PlayerDetails":[
{"PlayerName":"John","PlayerScore":1000},
{"PlayerName":"Carol","PlayerScore":2000},
{"PlayerName":"Sam","PlayerScore":3000}
]
}
);
{ "acknowledged" : true, "insertedId" : 101 }
Hiển thị document:
> db.sumEveryFieldDemo.find().pretty();
Kết quả:
{ "_id" : 101, "PlayerDetails" : [ { "PlayerName" : "John", "PlayerScore" : 1000 }, { "PlayerName" : "Carol", "PlayerScore" : 2000 }, { "PlayerName" : "Sam", "PlayerScore" : 3000 } ] }
Truy vấn tổng hợp điểm số:
> db.sumEveryFieldDemo.aggregate([
{ $unwind: "$PlayerDetails" },
{ $group: {
_id: '$_id',
sum: { $sum: '$PlayerDetails.PlayerScore' }
}}
]).pretty();
Kết quả:
{ "_id" : 101, "sum" : 6000 }