0

由于我对 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'>
4

0 回答 0