使用 pymongo 在 MongoDB 中创建具有父子层次结构的数据库
Creating a database with parent child hierarchy in MongoDB using pymongo
我正在查看 mongo 文档的这一页,因为我找不到任何特定的 pymongo 文档:https://docs.mongodb.com/manual/tutorial/model-tree-structures-with-parent-references/
我可以使用以下命令将文档插入到我的数据库中:
>>> db.categories.insert( { "_id": "MongoDB", "parent": "Databases" } )
'MongoDB'
但是当我到达这部分使用 .parent 时,它没有被识别并且 returns 出现错误。
>>> 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' 指的是添加的数据中的父键 - 而不是层次结构中的父节点。
我正在查看 mongo 文档的这一页,因为我找不到任何特定的 pymongo 文档:https://docs.mongodb.com/manual/tutorial/model-tree-structures-with-parent-references/
我可以使用以下命令将文档插入到我的数据库中:
>>> db.categories.insert( { "_id": "MongoDB", "parent": "Databases" } )
'MongoDB'
但是当我到达这部分使用 .parent 时,它没有被识别并且 returns 出现错误。
>>> 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' 指的是添加的数据中的父键 - 而不是层次结构中的父节点。