我是pymongo的初学者,我有一个用户集合,其中存储了用户和评论列表 用户实例类似于
user = {"Name":"Bill" , "Comments":["nice" , "bad"]}
我想要的是访问“不良”项并将其更改为“评论”列表中的“良好”,但是我是初学者,并且在pymongo语法上遇到了麻烦。 此命令用于更新,但我不知道如何访问特定列表项
users.update_one({'key': 'value'}, {'$set': {'key': 'different value'}})
感谢您的帮助。预先谢谢
答案 0 :(得分:1)
您可以使用positional operator($)
。这样只会更新与查询条件匹配的第一个元素。
db.collection.update_one(
{ 'name': 'Bill', 'ratings': 'bad' },
{ '$set':
{ 'ratings.$': 'good' }
}
)
如果要将所有"bad"
更新为"good"
,则应使用filtered positional operator($[<identifier>])
。
db.collection.update_one(
{ 'name': 'Bill' },
{ '$set':
{ 'ratings.$[elem]': 'good' }
},
array_filters = [{ 'elem': 'bad' }]
)