【问题标题】:Updating multiple documents in mongodb using _id field使用 _id 字段更新 mongodb 中的多个文档
【发布时间】:2016-08-19 01:07:24
【问题描述】:

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

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

【问题讨论】:

  • 这个查询对我有用。你还有其他问题。

标签: mongodb


【解决方案1】:

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

你也可以试试explain command

【讨论】:

    【解决方案2】:

    试一试:

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

    【讨论】:

      【解决方案3】:

      我认为您提供的对象 ID 不存在于集合中。
      我尝试使用以下查询,它对我有用。

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

      【讨论】:

      • 您好,欢迎来到 Stack Overflow。与其包含查询结果的屏幕截图,不如将其粘贴为文本,您的答案会更好。这样它就更具可读性和可索引性等。在这个网站上,鼓励用户进行编辑以尽可能地改进他们的答案,这将是一个好的开始。
      猜你喜欢
      • 2014-06-01
      • 2013-06-22
      • 1970-01-01
      • 2017-01-01
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多