Python 如何有效地查询和更新MongoDB(Pymongo)中的条目?
我有一个函数,如果我传入一个Python 如何有效地查询和更新MongoDB(Pymongo)中的条目?,python,python-3.x,mongodb,pymongo,pymongo-3.x,Python,Python 3.x,Mongodb,Pymongo,Pymongo 3.x,我有一个函数,如果我传入一个MongoDB.Collection.Object,它可能会也可能不会给我一个向量[1,2,3,4…]。首先,我需要提取所有必需的查询,然后根据每个查询更新条目。问题是我有这样的功能: def return_vector(q): # condition = my_logic if condition: return vector else: return None' for q in db.coll_name.find({'a.b.c':
MongoDB.Collection.Object
,它可能会也可能不会给我一个向量[1,2,3,4…]
。首先,我需要提取所有必需的查询,然后根据每个查询更新条目。问题是我有这样的功能:
def return_vector(q):
# condition = my_logic
if condition:
return vector
else:
return None'
for q in db.coll_name.find({'a.b.c':{'$gt':0.4}}):
vector = return_vector(q)
if q:
db.coll_name.update({'_id': q['_id']},{'$set': {'vector_v1': vector}})
有问题吗?这花了太多时间。我应该如何以优化的方式有效地使用它?您可以执行多个更新。这可能是缓慢的原因之一 您可以使用
bulkwrite
组合多个更新并向服务器发送一个请求。这将大大减少网络往返时间
希望您不会同时对同一文档有多个写入请求。您能编写一个虚拟代码来完成吗?我认为
find()
或arrgegate
在这里会很有用。无论如何,我无论如何都得一个接一个地写。我不会写。我可以吗?我建议你bulkWrite
,因为你需要更新。很抱歉,这对我不起作用。我不得不让节点人员来处理这件事。谢谢你的建议。Np,谢谢你的回复