Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pymongo在MongoDB中创建具有父子层次结构的数据库_Python_Mongodb_Pymongo_Hierarchy - Fatal编程技术网

Python 使用pymongo在MongoDB中创建具有父子层次结构的数据库

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

我正在查看mongo文档的这一页,因为我找不到任何特定的pymongo文档:

我可以使用以下命令将文档插入数据库:

>>> 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()以查找具有相同父级的所有其他节点。当您插入数据库时,每个实体都是不同的-没有“内置”机制在分层结构中工作:即-您必须通过在数据中添加例如“父”属性来促进这一点。希望这是有道理的。