如何在mongodb中添加字段数组的元素?

时间:2017-01-12 12:45:46

标签: javascript arrays mongodb

我有一个以下格式的集合:

{
    "_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.subje‌​ct2", "$marks.subject‌​3", "$marks.subject4"‌​], 4]
        }
      });
  }

1 个答案:

答案 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);
})
}