批量更新插入优化 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),这大大提高了性能