从关系数据库的背景来看,我想到存储树的唯一方法是:
关系 treeData :
{
_id: docID-1,
itemName : 'Main Root',
parent: null
},
{
_id: docID-2,
itemName: 'Child 1',
parent: docID-1
},
{
_id: docID-3,
itemName: 'Child 2',
parent: docID-1
}
我可以使用db.collection('treeData').find()
来检索记录,并使用递归来检索树结构中的数据。
但是MongoDB提供了嵌入式文档,这些文档将树重构为:
{
_id: docID-1,
itemName : 'Main Root',
children: [
{
_id: docID-2,
itemName: 'Child 1'
},
{
_id: docID-3,
itemName: 'Child 2'
}
]
}
我的问题是,如果使用嵌入式文档方法,那么检索(打印)此树的最佳方法是什么?
此外,我的目标是通过初始字符找到category/child category
,我可以使用第一种方法进行查找,如下所示:
db.collection('treeData').find({ name : 'abc' })
使用嵌入式文档来实现此目的的有效方法是什么?