我正在尝试将大约 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
然后调用替换,所以我认为这应该不重要
你可以试试这个,这样应该会更快, 另请阅读完整的文档:https://www.mongodb.com/docs/rapid/reference/method/db.collection.bulkWrite/
db.collection.bulkWrite(
[ <operation 1>, <operation 2>, ... ],
{
writeConcern : <document>,
ordered : <boolean>
}
)