[英]How to update MongoDB/PyMongo according to dictionary?
我希望为用户更新数据库中的所有文档,以便每个用户都获得类似于
for user in user_to_state:
collection_users.update_one({"username":user}, {$set: {"state":user_to_state[user]}})
但我想在单个查询中完成,而不是遍历字典一次更新一个。 这可能吗? 它比迭代更快吗?
如果我有每个用户的用户名的字典(该集合中每个文档当前的一个字段)和他们的 state 例如 {"jim12":"TX", "jane34":"FL", ...} 有没有办法做一个提交整个字典并遍历每个字典的单一查询,还是必须使用 update_one 方法对其进行迭代?
提前致谢!
您应该能够使用批量写入来执行此操作。
queries = []
for user in user_to_state:
query = {
"updateOne": {
"filter": {"username": user},
"update": {"$set": {"state": user_to_state[user]}}
}
}
queries.append(query)
collection_users.bulk_write(queries)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.