【问题标题】: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}})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-04
      • 2010-11-11
      • 2011-04-19
      • 2017-06-05
      • 1970-01-01
      • 2017-04-28
      • 2014-09-23
      • 2021-02-13
      相关资源
      最近更新 更多