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})

数据库托管在一个足够好的服务器上,我觉得它的代码限制了速度。不是服务器。

https://gyazo.com/f8227e0cd24c3f5c9c0cb67e52e5a9ca

您当前的尝试是在 js 级别迭代 find() 结果集并将单独的更新发回数据库,这会产生大量开销并且速度很慢。

使用 MongoDB v4.2+,您可以使用聚合管道进行更新。

db.collection.update({},
[
  {
    $addFields: {
      name: {
        name: "$name",
        level: "999"
      }
    }
  }
],
{
  multi: true
})

这里是Mongo playground供大家参考。