微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。