Mongodb 在更新方法中,包含列表的查询参数(pymongo)
我有一本字典。我需要将第2列插入对应于第1列(键)的mongodb中 假设这是字典:Mongodb 在更新方法中,包含列表的查询参数(pymongo),mongodb,pymongo,Mongodb,Pymongo,我有一本字典。我需要将第2列插入对应于第1列(键)的mongodb中 假设这是字典: values = {'a':['1','2','3'], 'b':['1','2'], 'c':['3','4'] } 现在,我正在这样做: for k,v in values.items(): col4.update({"name":k},{"$set":{"fieldName":v}}) 但这需要3次访问数据库。有没有可能像$in的工作方式一样一次性完成呢 在代码
values = {'a':['1','2','3'],
'b':['1','2'],
'c':['3','4'] }
现在,我正在这样做:
for k,v in values.items():
col4.update({"name":k},{"$set":{"fieldName":v}})
但这需要3次访问数据库。有没有可能像$in的工作方式一样一次性完成呢 在代码中,您通过
名称
字段查找每个文档,并将其字段名
设置为v
。Mongo中没有update
操作可以一次完成多个文档的更新
但是,有一个批量插入语句比多次插入或更新更有效
我想我以前不太理解你的问题,并在下面写下了答案,但我仍然不确定你所说的$in
是什么意思。也许您可以在DB中提供更新前后的数据示例,这样就完全清楚您想要实现什么
旧答案。。。(我很快就会编辑)
你需要重组你的循环。通过将{field:newValue}
添加到$set
子句来建立查询(未运行)。循环完成后,您将有一个模拟的{$set:{“a”:1,“b”:1,“c”:3}
。然后您将一次更新所有字段
以下是官方文件:
如果需要pymongo语法,请告诉我