我需要通过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脚本中进行上述更新。
答案 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。
解决方法是读取文档,更改数组值程序端并更新它。