mongodb更新数据库结构,超级慢
mongodb update structure of database, super slow
如果我需要更新 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})
数据库托管在一个足够好的服务器上,我觉得它的代码限制了速度。不是服务器。
您当前的尝试是在 js 级别迭代 find() 结果集并将单独的更新发回数据库,这会产生大量开销并且速度很慢。
使用 MongoDB v4.2+,您可以使用聚合管道进行更新。
db.collection.update({},
[
{
$addFields: {
name: {
name: "$name",
level: "999"
}
}
}
],
{
multi: true
})
这里是Mongo playground供大家参考。
如果我需要更新 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})
数据库托管在一个足够好的服务器上,我觉得它的代码限制了速度。不是服务器。
您当前的尝试是在 js 级别迭代 find() 结果集并将单独的更新发回数据库,这会产生大量开销并且速度很慢。
使用 MongoDB v4.2+,您可以使用聚合管道进行更新。
db.collection.update({},
[
{
$addFields: {
name: {
name: "$name",
level: "999"
}
}
}
],
{
multi: true
})
这里是Mongo playground供大家参考。