2012-01-01 4 views
3

この文書を更新しようとしています。

{"dealId" : 201, "commitCount" : 3 } 

... ...私はちょうど1で commitCountをインクリメントする必要があるので、私は)更新内部[]追加機能を(使用しようとしているが、私はそれを動作させることはできません私はモンゴから取得
db.deal.update({dealId:201},{$set:{commitCount:{$add:['$commitCount',1]} }}) 

エラーが

答えて

8

というエラーがあなたがMongoDBのでは無効であるフィールド名を使用しようとしていることを意味し、not okForStorage、それが何を意味するのか全く分からは、フィールドが更新されないされないです - その中にドット( "。")が付いたフィールド名か、文字列を含むフィールド名r記号。

$set

は全体的にフィールドを置き換えるために使用されているので、何を持っている以上のことは無効なドキュメントで、「文書 {$add: ['$commitCount', 1]}commitCountフィールドの内容を置き換える」と言っています。 )(あまりにも簡単

db.deal.update({dealId: 201}, {$inc: {commitCount: 1}}) 
+0

'$ inc'、またfindAndModifyで働いていた、素晴らしい仕事:

にアトミックインクリメントまたはフィールドの値をデクリメント$inc修飾子を使用します(番号をフィールドの現在の値をされると仮定した場合) 、 助けてくれてありがとう – user646584

関連する問題