如果我需要更新70,000文档的结构。通过游标循环并更新每个游标都是超慢的。大约是10/s。
关于如何更新文档结构的任何技巧(基本上更新我数据库中每个文档中的一些值)
import json
import pymongo
from bson.objectid import ObjectId
for document in applications.find({}):
document["name"] = {"name": document["name"], "level": "999"}
applications.update_one({}, {"$set": document})数据库托管在一个足够好的服务器上,我觉得这是限制速度的代码。不是服务器。
发布于 2022-04-20 11:36:02
当前的尝试是在js级别迭代find()结果集,并将单个更新返回到数据库,这会造成大量开销和速度慢。
使用MongoDB v4.2+,您可以使用聚合管道进行更新。
db.collection.update({},
[
{
$addFields: {
name: {
name: "$name",
level: "999"
}
}
}
],
{
multi: true
})这是供您参考的蒙戈游乐场。
https://stackoverflow.com/questions/71932214
复制相似问题