在 Mongodb 中更新多条记录的最快方法

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

我正在尝试将大约 5k 个文档更新(更新插入)到 Mongodb 中。我面临的问题是,即使对于 5k,它也变得非常慢。我不确定是否是因为我有免费的 Mongo Atlas 帐户。更新所有条目大约需要 10 分钟。下面是我的代码:

var bulk = database.collection("job_applications").initializeUnorderedBulkOp();
for (const application of applications) {
    bulk.find({application_id: application['application_id']}).upsert().replaceOne(application);
}
await bulk.execute();

我认为 5k 条目不应该花那么多时间。此外,无论我研究什么,我发现initializeUnorderedBulkOp是更新多个条目的最快方法,但对我来说仍然太慢了。

我不确定这是什么原因。这是我的免费帐户还是代码?

注意:该文档有大约 100 个属性。虽然我先使用

find
然后调用替换,所以我认为这应该不重要

node.js mongodb mongodb-query node-mongodb-native
1个回答
0
投票

你可以试试这个,这样应该会更快, 另请阅读完整的文档:https://www.mongodb.com/docs/rapid/reference/method/db.collection.bulkWrite/

db.collection.bulkWrite(
   [ <operation 1>, <operation 2>, ... ],
   {
      writeConcern : <document>,
      ordered : <boolean>
   }
)
© www.soinside.com 2019 - 2024. All rights reserved.