在 MongoDB 中查詢陣列內部欄位的總和?


要查詢陣列內的欄位總和,請使用 $sum。讓我們建立一個帶有文件的集合 −

> db.demo96.insertOne(
... {
...
...    "Name" : "Chris",
...    "Details" : [
...       {
...          Marks:67
...       },
...       {
...          Marks:33
...       },
...       {
...          Marks:50
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2d6aadb8903cdd865577ad")
}

使用 find() 方法顯示集合中的所有文件 −

> db.demo96.find();

這將產生以下輸出 −

{
   "_id" : ObjectId("5e2d6aadb8903cdd865577ad"), "Name" : "Chris", "Details" : [
      { "Marks" : 67 }, { "Marks" : 33 }, { "Marks" : 50 }
   ] 
}

以下是在 MongoDB 中查詢陣列內部欄位總和的查詢 −

> db.demo96.aggregate([
... { "$project": {
...    "Name": 1,
...    "TotalMarks": {
...       "$sum": "$Details.Marks"
...       }
...    }}
... ]);

這將產生以下輸出 −

{ "_id" : ObjectId("5e2d6aadb8903cdd865577ad"), "Name" : "Chris", "TotalMarks" : 150 }

更新於:2020 年 3 月 30 日

2K+ 次觀看

開啟您的職業生涯

完成課程後獲得認證

開始
廣告