我尝试使用 Model.bulkWrite()。结果显示所有文档都已更新(2567),但是当我签入数据库时,我只有 2340 个文档。
this.marketModel
.bulkWrite(
data.map((market) => ({
updateOne: {
filter: { code: market.code, exchangeCode: market.exchangeCode },
update: market,
upsert: true,
},
})),
)
.then((result) => console.log(result))
记录结果:
BulkWriteResult {
insertedCount: 0,
matchedCount: 2568,
modifiedCount: 2568,
deletedCount: 0,
upsertedCount: 0,
upsertedIds: {},
insertedIds: {}
}
我尝试将其分成更小的块,但它也只更新了 2340 个文档。
看起来猫鼬丢失了数据。
当我第一次以这种方式插入数据时,它也会丢失数据。
编辑: 我根据每个对象在 ExchangeCode 和 ExchangeCode 字段都有唯一约束的信息,但事实并非如此。因此,如果将来有人来到这里,请检查两次您的过滤器,以确保它是独一无二的。