使用 mongodb 批量写入 updateMany 获取更新插入总数和匹配总数时出现问题

问题描述 投票:0回答:1

下面是我插入 1000 个文档的

bulkWrite
方法。问题是我无法从结果中提取总计
upsertedCount

我得到的都是单独的

BulkWriteResult
,每个插入的文档如下所示

console.log(results) :->

  BulkWriteResult {
     insertedCount: 0,
     matchedCount: 0,
     modifiedCount: 0,
     deletedCount: 0,
     upsertedCount: 1,
     upsertedIds: { '0': new ObjectId('6684fe4d1625ae49f6233577') },
     insertedIds: {}
   }

如果有人提出解决方案,我将不胜感激。 方法->

db.collections.bulkWrite([
     {updateMany :
       {
        "filter": {"name": product.name}, 
        "update": {"$setOnInsert" : {
         name: product.name,
         description: product.description,
         price: product.price,
         category: product.category,

          }},           
         upsert: true
        }
       }
     ],{ ordered: false } )
  .then(results => {
    console.log(results)
  })
 .catch(err=>Error(err))

我在 MongoDB 文档中搜索,但在他们的文档中找不到任何关于如何提取总数的解决方案

upsertedCount

node.js mongodb
1个回答
0
投票

BulkWriteResult 类的文档 - https://mongodb.github.io/node-mongodb-native/6.8/classes/BulkWriteResult.html

您应该能够像 results.upsertedCount

 一样直接读取 
upsertedCount

属性
© www.soinside.com 2019 - 2024. All rights reserved.