问题描述
因为我对 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 (将#修改为@)