如何在python中更新mondodb中的许多记录?

如何在python中更新mondodb中的许多记录?,python,django,database,mongodb,pymongo,Python,Django,Database,Mongodb,Pymongo,我想使用python更新mongodb中的记录: 我正在使用这个代码,它完成了任务。然而,数据的长度约为100万,需要花费大量时间 new_data = [] for x in data: if collection.find({'ptr_id':x["ptr_id"]}).count() < 0 : new_data += [x] else: bulkop.find({'ptr_id':x["ptr_id&qu

我想使用python更新mongodb中的记录: 我正在使用这个代码,它完成了任务。然而,数据的长度约为100万,需要花费大量时间

new_data = []
for x in data:
    if collection.find({'ptr_id':x["ptr_id"]}).count() < 0 :
        new_data += [x]
    else:
        bulkop.find({'ptr_id':x["ptr_id"]}).update({ "$set": x })
try:
    result = bulkop.execute()
except:
    ...
new_data=[]
对于数据中的x:
if collection.find({'ptr_id':x[“ptr_id”]}).count()<0:
新的_数据+=[x]
其他:
bulkop.find({'ptr_id':x[“ptr_id”]}).update({“$set”:x})
尝试:
结果=bulkop.execute()
除:
...

我怎样才能跑得更快。仅供参考集合。查找({'ptr\u id':x[“ptr\u id”]})。计数()将始终为01。另一种方法也很有用

有没有一种方法可以将其描述为mongo查询?让服务器做这项工作总是更有效率的。不,我不这么认为,它可以这样做。我主要关心的是,我是否可以采取其他措施来避免/最小化for循环。就像使用update_manyi一样,如果在
数据中有一百万个元素,则执行
收集。查找
一百万次-这不是很有效。