批量更新插入优化 mongoDB
Bulk upsert optimization mongoDB
我有一个包含大约 50 000 个条目的集合,其中包含一些字段。
它们两个的组合是uniq(一个ObjectID和一个字符串)。
我大约需要 15 秒来更新 500 个条目。有没有办法更快地完成它?
我尝试在带有 nestJS 的集合上使用 bulkWrite(使用 ordered:false)而不是多个 updateOne(),但没有任何收获。
myObjects.forEach(objects => {
const upsertDoc = {
updateOne: {
filter: { someOid: myOid, someString: myString },
update: { $set: myObject },
upsert: true,
},
};
bulkOps.push(upsertDoc);
}
myModel.collection.bulkWrite(bulkOps, { ordered: false });
我尝试使用空集合,速度更快(200 毫秒),我猜这是过滤器部分花费的时间太长了。
我找到的解决方案是不搜索两个字段,而是只搜索一个字段(在 ma 的情况下就是 _id),这大大提高了性能
我有一个包含大约 50 000 个条目的集合,其中包含一些字段。
它们两个的组合是uniq(一个ObjectID和一个字符串)。
我大约需要 15 秒来更新 500 个条目。有没有办法更快地完成它? 我尝试在带有 nestJS 的集合上使用 bulkWrite(使用 ordered:false)而不是多个 updateOne(),但没有任何收获。
myObjects.forEach(objects => {
const upsertDoc = {
updateOne: {
filter: { someOid: myOid, someString: myString },
update: { $set: myObject },
upsert: true,
},
};
bulkOps.push(upsertDoc);
}
myModel.collection.bulkWrite(bulkOps, { ordered: false });
我尝试使用空集合,速度更快(200 毫秒),我猜这是过滤器部分花费的时间太长了。
我找到的解决方案是不搜索两个字段,而是只搜索一个字段(在 ma 的情况下就是 _id),这大大提高了性能