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

Try this;

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