आप नीचे एकत्रीकरण का उपयोग कर सकते हैं:
db.col.aggregate([
{
$unwind: "$marks"
},
{
$project: {
_id: 1,
name: 1,
marks: {
$objectToArray: "$marks"
}
}
},
{
$project: {
_id :1,
name: 1,
total_marks: {
$reduce: {
input: "$marks",
initialValue: 0,
in: { $add : ["$$value", "$$this.v"] }
}
}
}
},
{
$group: {
_id: "$_id",
name: { $first: "$name" },
total_marks: { $sum: "$total_marks" }
}
}
])
चूंकि आपके निशान एक वस्तु के रूप में संग्रहीत हैं, इसलिए आपको $objectToArray विषयों की एक सरणी प्राप्त करने के लिए। फिर आप $reduce का इस्तेमाल कर सकते हैं एक छात्र के लिए सभी विषयों का योग।