首页 > 解决方案 > 使用 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'

我是否错误地遵循了文档的某些部分,或者某些方法具有我不知道的父子层次结构?谢谢。

标签: pythonmongodbpymongohierarchy

解决方案


db.categories.find_one正在返回一个字典,所以你需要使用正确的获取语义:即:

db.categories.find_one( { "_id": "MongoDB" } )["parent"]

最好也添加错误检查:

record = db.categories.find_one( { "_id": "MongoDB" } )
if record:
   parent = record["parent"]

在文章中,'parent' 指的是添加的数据中的父键,而不是层次结构中的父节点。


推荐阅读