2

サンプル製品テーブルがあり、_id フィールドを使用して複数のドキュメントを更新したいと考えています。毎回、これを試すたびに、すべてを更新するのではなく、前述の $in 句の最初のドキュメントのみを更新します。

db.products.update({_id:{$in:[ObjectId("507d95d5719dbef170f15bff"),
ObjectId("507d95d5719dbef170f15c01"), ObjectId("507d95d5719dbef170f15c00")]}},
{$set:{'monthly_price':7865}}, {multi:true})
4

3 に答える 3

0

あなたが与えたオブジェクトIDはコレクションに存在しないと思います。
次のクエリを使用してみましたが、うまくいきました。

db.test.update({_id:{$in:[ObjectId("57b33483e5b9ce24f4910855"),
                          ObjectId("57b33483e5b9ce24f4910856"),
                          ObjectId("57b33489e5b9ce24f4910857"),
                          ObjectId("57b33491e5b9ce24f4910858")
                         ]
                     }
                 },
                 {$set{'isCurrentStatus':true}}, 
                 {multi:true}
              )

クエリ結果

于 2016-08-18T16:11:38.217 に答える
0

すべてのオブジェクト ID が実際に存在することを確認するために、最初に products テーブルで find を実行してみてください。

説明コマンドを試すこともできます

于 2013-07-25T05:52:03.417 に答える
0

これを試してください:

db.<collection>.update( { query }, {$set: {monthly_price:7865}}, false, true)
于 2013-07-25T05:58:57.077 に答える