当bulkWrite抛出错误时,是否有办法获得mongoose bulkWrite结果?
我在网上搜索了好几天,我所能找到的就是解决办法是设置{ordered: false}
但这并没有解决任何问题。
例如,我有一个如下所示的bulkWrite:
try {
let data = [{ ...some_data}, { ...some_data}, {...some_data}]
let updateOps = data.map((item) => {
return {
updateOne: {
filter: { some_field: item.some_field },
update: item,
upsert: true,
},
}
})
const result = await model.bulkWrite(updateOps, { ordered: false } )
} catch (e) {
... do something with error
}
如果一切顺利,结果我得到nModified,nUpserted等像 Mongoose 文档。
但是,如果例如bulkWrite在第二次更新后抛出错误,它将转到catch块,我永远无法实际看到更新结果,或获得在抛出错误前更新的项目计数。
是否有任何解决方案可以在出错后继续bulkWrite,或者至少可以获取有关在导致错误之前修改或更新的文档的信息?
1条答案
按热度按时间ykejflvf1#
试试这个: