一次更新MongoDB中的多个文档

一次更新MongoDB中的多个文档,mongodb,Mongodb,目前我使用MongoDB 4.0。我可以一次插入多个文档,如下所示: db.books.insertMany([ { "_id" : 1, "item" : "TBD", "stock" : 0, "info" : { "publisher" : "1111", "pages" : 430 }, "tags" : [ "technology", "computer" ], "ratings" : [ { "by" : "ijk", "ratin

目前我使用MongoDB 4.0。我可以一次插入多个文档,如下所示:

db.books.insertMany([
  {
    "_id" : 1,
    "item" : "TBD",
    "stock" : 0,
    "info" : { "publisher" : "1111", "pages" : 430 },
    "tags" : [ "technology", "computer" ],
    "ratings" : [ { "by" : "ijk", "rating" : 4 }, { "by" : "lmn", "rating" : 5 } ],
    "reorder" : false
   },
   {
    "_id" : 2,
    "item" : "XYZ123",
    "stock" : 15,
    "info" : { "publisher" : "5555", "pages" : 150 },
    "tags" : [ ],
    "ratings" : [ { "by" : "xyz", "rating" : 5 } ],
    "reorder" : false
   }
]);

问题是,当我想将第一个项目的库存更新为5,将第二个项目的库存更新为10时,是否可以像在
insertMany
中那样一次更新多个文档?如果是,怎么做?

您应该在mongodb中尝试
bulkWrite
操作

try {
   db.books.bulkWrite(
      [

         { updateOne :
            {
               "filter" : { "_id" : 1 },
               "update" : { $set : { "stock " : 5} }
            }
         },
         { updateOne :
            {
               "filter" : { "_id" : 2 },
               "update" : { $set : { "stock " : 10} }
            }
         }
      ]
   );
}
catch (e) {
   print(e);
}

是的,有可用的
updateMany
。怎么做?我想做这样的条件:如果_id=1,集合库存=5,如果_id=2,集合库存=10。我发现如果我们想更新文档,我们可以更新所有字段。但是如果我想一次更新多个文档,该怎么办?