我在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小时)
将
movieid
上的索引添加到集合中,以加快对该字段的更新。你知道吗相关问题 更多 >
编程相关推荐