如何使用 MongoEngine 将 MySQL 数据库传输到 MongoDB?

How to transfer MySQL database to MongoDB using MongoEngine?

我在 MongoDB 中有一个现有集合,我需要通过从 MySQL table.

获取值来更新某些文档

目前,我正在使用以下 python 代码使用 MongoEngine 更新集合,但由于数据集非常大(集合中有 2m+ 文档,其中 80k+ 文档需要待更新)

query = "Select * from business"
cursor.execute(query)
for line in cursor:
    Movie.objects(movieid=line[0]).first().update(set__business=line[1])

虽然更新早期文档(比如前 5k 个文档)花费的时间非常少,但是当它开始超出这个范围时,它会花费很长时间。我的假设是它每次都从头开始查找记录。它可以以某种方式优化,因为 MySQL table 记录是有序的。

有没有办法在集合中搜索,让下一个循环从最后更新的documentid开始?使用 MongoEngine 更新 MongoDB 集合的最佳方法是什么?

(附加信息:插入 200 万条记录大约需要 2 小时,而更新 80k 条记录需要 25 小时)

movieid 上的索引添加到您的 collection 以加快您对该字段的更新。