【问题标题】:Mongo client not updating multiple recordsMongo客户端不更新多条记录
【发布时间】:2015-10-17 23:11:02
【问题描述】:

我有一个 MongoDB 集合,其中包含许多文档,格式如下:

{
    "_id" : ObjectId("55b64b79cf8b57c2face707d"),
    "my_id" : "MYMAINID00001",
    "position" : 4,
    "A" : 0,
    "B" : -2.17,
    "C" : -3.46
}

我正在尝试使用以下命令更新与my_id 字段匹配的多条记录:

db.mycollection.update(
    {"my_id": "MYMAINID00001"}, 
    { $set: 
      {"my_id": "MYMAINID00001", 
       "start": 128, 
       "end": 255}
    },
    {
      $upsert: 1,
      $multi: 1
    }
)

但是,这只是创建具有 4 个字段的新文档:

{
    "_id" : ObjectId("55b64b79cf8b57c2face707c"),
    "my_id" : "MYMAINID00001",
    "start" : 128,
    "end" : 255
}

并且不更新当前现有记录以包含 start 和 end 字段。

从docs 看来,我的操作似乎是正确的,但显然有问题。

有没有人知道为什么这个更新命令没有更新当前存在的记录?

我仍在使用 Mongo 2.6。

【问题讨论】:

    标签: javascript mongodb


    【解决方案1】:

    你做错了。没有$upsert 或$multi 运算符

    db.mycollection.update({ "my_id": "MYMAINID00001" }, 
        { "$set": { 
            "my_id": "MYMAINID00001", 
            "start": 128, 
            "end": 255
         }},
        { upsert: 1, multi: 1 }
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-18
      • 2021-10-16
      • 2016-05-01
      • 2013-05-02
      相关资源
      最近更新 更多