使用mongodb更新嵌套数组数据

使用mongodb更新嵌套数组数据,mongodb,nested-sets,insert-update,Mongodb,Nested Sets,Insert Update,我有嵌套数据: Object _id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7" answers: Array[4] 0: Object name: "myData" owned_by: "273b7291-df2b-494c-bd9b-64e71283447e" score: 0 我正在尝试更新,只有一个特定的嵌套答案,我知道它的名字。我只想增加得分字段,我只知道名称。如何做到这一点 到目前为止,我有这个:d

我有嵌套数据:

Object
_id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7"
  answers: Array[4]
    0: Object
      name: "myData"
      owned_by: "273b7291-df2b-494c-bd9b-64e71283447e"
      score: 0
我正在尝试更新,只有一个特定的嵌套
答案
,我知道它的名字。我只想增加
得分
字段,我只知道
名称
。如何做到这一点


到目前为止,我有这个:
db.Question.update({u id:“90fac6ab-b88e-42a1-8e91-80ee25951ec7”},“我的数据”:{$inc:{score:2})

您希望根据回答者的姓名(我想这就是姓名)增加每个答案的分数,如下所示:

应该有用。我在这里使用positional操作符进入一个子教育以填充
$

试试这个

db.Question.update({ _id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7", "answers.name": "myData" }, 
                   { $inc: { "answers.$.score": 2} });

该死!你只是抢先一步(糟糕的火车wifi)。有没有办法使用$set更新嵌套的查询对象,并传递一个只包含要更新属性的对象?我的意思是像这样的第二个arg{$set:{“answers.$”:{attr1:val1,attr2:val2}}
db.Question.update({ _id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7", "answers.name": "myData" }, 
                   { $inc: { "answers.$.score": 2} });