我有嵌套数据:
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}});
答案 0 :(得分: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
答案 1 :(得分:0)
试试这个;
db.Question.update({ _id: "90fac6ab-b88e-42a1-8e91-80ee25951ec7", "answers.name": "myData" },
{ $inc: { "answers.$.score": 2} });