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

2024-04-25 13:13:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在MongoDB中有一个现有的集合,我需要通过从MySQL表中获取值来更新某些文档。你知道吗

目前,我正在使用以下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表记录是有序的。你知道吗

有没有办法在集合中搜索,以便下一个循环从上次更新的documentid开始?使用MongoEngine更新MongoDB集合的最佳方法是什么?你知道吗

(附加信息:插入2m+记录需要2小时,而更新80k记录需要25小时)


Tags: 数据代码文档mongodb记录line时间mysql