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

Tổng hợp mọi trường trong sub-document MongoDB?

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 }