在 MongoDB 中更改嵌套条目中的一个字段的 Pythonic 方法

问题描述

因为我对 MongoDB(以及一般的数据库)相当陌生,所以我想知道这是否是修改嵌套条目中的一个字段的最 Pythonic 的方法。我要更改的字段存储在我的收藏“板”中,如下所示:

_id: 270
checklist: {
    mechanical: {
        15: False
    }
}

所有键(检查表、机械键和 15)都是字符串并引用布尔值 (False)。我如何修改数据的代码如下:

# lock collection,define query
col = db["boards"]
query = {"_id": board_id}

# get data of one ID
document = col.find_one(query)
if document is None:
    print("Board id {0} invalid!".format(board_id))
    return

# modify document
document["checklist"][checklist][str(checklist_nr)] = set_to

# update whole document
col.update_one(query,{"$set": document})

如你所见,我总是得到完整的文档,修改它并再次编写完整的修改过的文档。有没有办法只查询这个字段并修改它?我无法做到,遇到了这样的错误等:

bson.errors.InvalidDocument: cannot encode object: {'15'},of type: <class 'set'>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)