【问题标题】:How to update the 'status' value from nested document in MongoDB?如何从 MongoDB 的嵌套文档中更新“状态”值?
【发布时间】:2021-03-10 09:16:41
【问题描述】:
我正在尝试更新集合中的文档:
mydb = client['Fruits']
fruit_information = mydb.fruits
record = {'fruit_name': {'apple':{'status':'0'},'banana':{'status':'0'}}}
fruit_information.insert(record)
所以我想更新“状态”:“1”,我该怎么做?
如果有人可以提供帮助,我将不胜感激。
谢谢!
【问题讨论】:
标签:
python
python-3.x
database
mongodb
pymongo
【解决方案1】:
不推荐使用插入调用。我建议使用 insert_one。此方法返回一个插入结果,其中包含插入文档的 id。然后,您可以将此 id 作为文档过滤器传递给 update_one 调用,并像这样更新嵌套字段。
from pymongo import MongoClient
client = MongoClient()
mydb = client['Fruits']
fruit_information = mydb.fruits
record = {'fruit_name': {'apple':{'status':'0'},'banana':{'status':'0'}}}
result = fruit_information.insert_one(record)
fruit_information.update_one({'_id' : result.inserted_id}, {'$set': {'fruit_name.apple.status' : 1}})
fruit_information.update_one({'_id' : result.inserted_id}, {'$set': {'fruit_name.banana.status' : 1}})