Python 使用pymongo在MongoDB中创建具有父子层次结构的数据库
我正在查看mongo文档的这一页,因为我找不到任何特定的pymongo文档: 我可以使用以下命令将文档插入数据库:Python 使用pymongo在MongoDB中创建具有父子层次结构的数据库,python,mongodb,pymongo,hierarchy,Python,Mongodb,Pymongo,Hierarchy,我正在查看mongo文档的这一页,因为我找不到任何特定的pymongo文档: 我可以使用以下命令将文档插入数据库: >>> db.categories.insert( { "_id": "MongoDB", "parent": "Databases" } ) 'MongoDB' 但当我到达要使用.parent的这一部分时,它不会被重新识别并返回一个错误 >>> db.categories.find_one( { "_id": "MongoDB" } ).pa
>>> 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({“\u id”:“MongoDB”}).parent
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“dict”对象没有属性“parent”
是否有我不正确遵循的文档的某些部分,或者有我不知道的具有父子层次结构的方法?谢谢。
db.categories.find\u one
正在返回dict,因此您需要使用正确的get语义:即:
db.categories.find_one( { "_id": "MongoDB" } )["parent"]
最好也添加错误检查:
record = db.categories.find_one( { "_id": "MongoDB" } )
if record:
parent = record["parent"]
在文章中,“parent”指的是添加的数据中的父项,而不是层次结构中的父节点。
db.categories.find\u one
返回dict,因此需要使用正确的get语义:即:
db.categories.find_one( { "_id": "MongoDB" } )["parent"]
最好也添加错误检查:
record = db.categories.find_one( { "_id": "MongoDB" } )
if record:
parent = record["parent"]
在文章中,“parent”指的是添加的数据中的父项,而不是层次结构中的父节点。。这很有道理,谢谢你的快速回复。你是说这篇文章和你的演示只涉及数据中的父键,不可能有一个层次化的父子节点结构?该页面为你提供了一些如何构造父/节点的策略。您必须查询该对象,获取其父级值,然后执行db.find()以查找具有相同父级的所有其他节点。当您插入数据库时,每个实体都是不同的-没有“内置”机制在分层结构中工作:即-您必须通过在数据中添加例如“父”属性来促进这一点。希望这有道理。太棒了。这很有道理,谢谢你的快速回复。你是说这篇文章和你的演示只涉及数据中的父键,不可能有一个层次化的父子节点结构?该页面为你提供了一些如何构造父/节点的策略。您必须查询该对象,获取其父级值,然后执行db.find()以查找具有相同父级的所有其他节点。当您插入数据库时,每个实体都是不同的-没有“内置”机制在分层结构中工作:即-您必须通过在数据中添加例如“父”属性来促进这一点。希望这是有道理的。