我有一个以下格式的集合:
{
"_id" : ObjectId("5877540712b0de70db15f3e2"),
"student_name" : "neel",
"roll_no" : 1,
"marks" : [
{
"subject1" : 44,
"subject2" : 99,
"subject3" : 67,
"subject4" : 43
}
]
}
我需要创建一个带参数roll_no
的JavaScript函数来查找学生的百分比。
注意:$add
不适用于数组。
我的职能是:
function findpercentage(no) {
db.marks1.aggregate({
$match: {
"roll_no": no
}
}, {
$project: {
"student_name": 1,
"total": {
$divide: [$add: ["$marks.subject1", "$marks.subject2", "$marks.subject3", "$marks.subject4"], 4]
}
});
}
答案 0 :(得分:0)
最后我得到了一个解决方案,虽然$ unwind无效。
function findpercentage1(no) {
db.marks1.aggregate([
{ $match:{roll_no:no}},
{ $project: {
"student_name": 1,
percentage: {
$divide:[
{$add: [ { $arrayElemAt: [ "$marks", 0 ] },
{ $arrayElemAt: [ "$marks", 1 ] },
{ $arrayElemAt: [ "$marks", 2 ] },
{ $arrayElemAt: [ "$marks", 3 ] }
] },
4
]
}
}
}
]).forEach(function(pnt)
{
print(pnt.percentage);
})
}