Mongo客户端没有更新多个记录

Mongo client not updating multiple records

本文关键字:记录 更新 客户端 Mongo      更新时间:2023-09-26

我有一个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
}

更新当前存在的记录,包括startend字段。

从看文档,它看起来像我这样做是正确的,但显然是错误的。

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

我仍然使用Mongo 2.6.

你做错了。没有$upsert$multi操作符

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