0

我有嵌套数据:

Object
_id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7"
  answers: Array[4]
    0: Object
      name: "myData"
      owned_by: "273b7291-df2b-494c-bd9b-64e71283447e"
      score: 0

我正在尝试更新,只有一个answer我知道其名称的特定嵌套。我只想增加score字段,我只知道name. 如何做到这一点?

到目前为止,我有这个: db.Question.update({_id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7"}, "myData":{$inc: {score: 2}});

4

2 回答 2

1

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

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

应该管用。我在这里使用位置运算符进入一个子目录以填充$http ://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator

于 2012-10-30T08:40:26.353 回答
0

试试这个;

db.Question.update({ _id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7", "answers.name": "myData" }, 
                   { $inc: { "answers.$.score": 2} });
于 2012-10-30T09:03:19.560 回答