小编ama*_*nce的帖子

批量更新太慢了

我正在使用pymongo进行批量更新.
下面的名称列表是一个不同的名称列表(每个名称可能在集合中有多个文档)

代码1:

bulk = db.collection.initialize_unordered_bulk_op()
for name in names:  
    bulk.find({"A":{"$exists":False},'Name':name}).update({"$set":{'B':b,'C':c,'D':d}})
print bulk.execute()  
Run Code Online (Sandbox Code Playgroud)

代码2:

bulk = db.collection.initialize_unordered_bulk_op()
counter = 0
for name in names:  
    bulk.find({"A":{"$exists":False},'Name':name}).update({"$set":{'B':b,'C':c,'D':d}})
    counter =counter + 1
    if (counter % 100 == 0):
        print bulk.execute()
        bulk = db.collection.initialize_unordered_bulk_op()
if (counter % 100 != 0):
    print bulk.execute()  
Run Code Online (Sandbox Code Playgroud)

我的收藏中有50000个文件.如果我摆脱了计数器和if语句(代码1),代码就会卡住!使用if语句(代码2),我假设这个操作不应该花费超过几分钟,但它正在采取更多的方式!你能帮助我加快速度,还是我的假设错了?!

mongodb pymongo

7
推荐指数
1
解决办法
3279
查看次数

标签 统计

mongodb ×1

pymongo ×1