python - 使用 pymongo 在 MongoDB 中创建具有父子层次结构的数据库
问题描述
我正在查看 mongo 文档的此页面,因为我找不到任何特定的 pymongo 文档:https ://docs.mongodb.com/manual/tutorial/model-tree-structures-with-parent-references/
我可以使用以下命令将文档插入到我的数据库中:
>>> db.categories.insert( { "_id": "MongoDB", "parent": "Databases" } )
'MongoDB'
但是当我到达这部分以使用 .parent 时,它不会被识别并返回错误。
>>> db.categories.find_one( { "_id": "MongoDB" } ).parent
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'parent'
我是否错误地遵循了文档的某些部分,或者某些方法具有我不知道的父子层次结构?谢谢。
解决方案
db.categories.find_one
正在返回一个字典,所以你需要使用正确的获取语义:即:
db.categories.find_one( { "_id": "MongoDB" } )["parent"]
最好也添加错误检查:
record = db.categories.find_one( { "_id": "MongoDB" } )
if record:
parent = record["parent"]
在文章中,'parent' 指的是添加的数据中的父键,而不是层次结构中的父节点。
推荐阅读
- python - 如何更改我的代码以仅打印 x 数量的图表?
- pine-script - 使用 Pine 脚本是否可以将某些文件中的一些外部数据添加到 TradingView 图表?
- openvas - OpenVAS 安装和运行错误
- java - 带有非 UTF-8 字符的请求正文引发 JSON 解析错误:无效的 UTF-8 起始字节 0xae , 0xfc
- docker - 构建路径不存在、不可访问或不是有效的 URL
- android - 用 Kotlin 协程替换 JobService()?
- tensorflow - 在语义分割/unet 模型中处理未标记的像素
- python - 如何使用开放 CV 从列表中获取图像调整大小并在 0 到 1 之间缩放像素值
- r - 计算R中特定日期之前的死亡率累积
- laravel - 在未找到 Laravel 包上工作 未找到类“Usman\HeloProvider”