Mongodb 在更新方法中,包含列表的查询参数(pymongo)

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的工作方式一样一次性完成呢 在代码

我有一本字典。我需要将第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的工作方式一样一次性完成呢

在代码中,您通过
名称
字段查找每个文档,并将其
字段名
设置为
v
。Mongo中没有
update
操作可以一次完成多个文档的更新

但是,有一个批量插入语句比多次插入或更新更有效

我想我以前不太理解你的问题,并在下面写下了答案,但我仍然不确定你所说的
$in
是什么意思。也许您可以在DB中提供更新前后的数据示例,这样就完全清楚您想要实现什么

旧答案。。。(我很快就会编辑)

你需要重组你的循环。通过将
{field:newValue}
添加到
$set
子句来建立查询(未运行)。循环完成后,您将有一个模拟的
{$set:{“a”:1,“b”:1,“c”:3}
。然后您将一次更新所有字段

以下是官方文件:

如果需要pymongo语法,请告诉我