使用_id字段更新mongodb中的多个文档

时间:2013-07-25 05:29:06

标签: mongodb

我有示例产品表,并希望使用_id字段更新多个文档。每次,我尝试这个只更新我提到的$ in子句中的第一个doc,而不是更新所有。

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

3 个答案:

答案 0 :(得分:0)

您可以先尝试在products表上运行find,以确保所有对象ID实际存在。

您还可以尝试explain command

答案 1 :(得分:0)

尝试一下:

db.<collection>.update( { query }, {$set: {monthly_price:7865}}, false, true)

答案 2 :(得分:0)

我认为你给出的对象id在集合中不存在 我尝试使用以下查询,它对我有用。

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

Query result