python脚本中的mongodb数组更新

时间:2012-12-15 10:56:26

标签: python mongodb updates

我需要通过python脚本

更新mongo集合中数组jobs中的值

例如,以下在mongo控制台中完全正常,但在python

中如何操作
posts.update({'_id':213},{'$set':{"jobs.1.title":1}}, false, true)

另一个有趣的一点,我想通过使用$我可以更改数组中的所有值。以下内容既不适用于控制台也不适用于脚本。

posts.update({'_id':213},{'$set':{"jobs.$.title":1}}, false, true)

问题是我如何在python脚本中进行上述更新。

2 个答案:

答案 0 :(得分:2)

在Python的pymongo update中非常相似:

posts.update({'_id':213}, {'$set':{"jobs.1.title":1}}, upsert=False, multi=True)

当然,您还需要连接到数据库并将posts设置为该集合。

$并不像你在想的那样充当通配符;它标识doc中与查询匹配的第一个数组元素。我认为没有办法像这样更新所有数组元素。

答案 1 :(得分:0)

您可以使用pymongo与python中的MongoDB进行交互。

关于更新数组中所有值的$运算符,不是你应该如何使用它。请查看documentation

  

数组字段必须作为查询选择器的一部分出现。

MongoDB问题跟踪器上有关于此主题的open issue

解决方法是读取文档,更改数组值程序端并更新它。