1

我需要jobs通过 python 脚本更新 mongo 集合中的数组中的值

例如,以下在 mongo 控制台中工作得非常好,但是如何在 python 中这样做

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

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

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

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

4

2 回答 2

2

它在 Python 的 pymongo 中非常相似update

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

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

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

于 2012-12-15T15:23:39.753 回答
0

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

关于 $ 运算符更新数组中的所有值,这不是您应该使用它的方式。请检查文档

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

MongoDB 问题跟踪器上有一个关于此主题的未解决问题。

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

于 2012-12-15T15:24:06.723 回答