如何通过两个引用更新数组中的单个子元素

时间:2015-08-06 13:49:10

标签: mongodb meteor mongodb-query

我有这样的学校文档结构:

{
    "_id":"tnoMB2PhsPPQKcafz",
    // some other property here
    "students":[{
        "student":{
            "ref_id":"eaH7JsponapSWCGf6",
            "name":"name",
            "family":"family",
            "grade":12
        },
        // many other student here
]}

我想在确定的学校更新已确定学生的成绩属性,但我不知道该怎么做。

例如我有学校_id( tnoMB2PhsPPQKcafz )和学生ref_id( eaH7JsponapSWCGf6 ),并希望将确定的学生成绩从12更新到18。

1 个答案:

答案 0 :(得分:4)

Use $elemMatch as below :

db.school.update({"_id" : "tnoMB2PhsPPQKcafz","students":{"$elemMatch":{"student.ref_id":"eaH7JsponapSWCGf6"}}},{"$set":{"students.$.student.grade":18}})