【发布时间】:2018-06-13 21:43:01
【问题描述】:
我在 MongoDB 中有一个具有树结构的文档列表,其中使用了 Model Tree Structures with Parent References 模式。给定'name'属性,我想要一个返回祖先列表(直到根)的聚合查询。
结构:
{
'_id': '1',
'name': 'A',
'parent': '',
},
{
'_id': '2',
'name': 'B',
'parent': 'A',
},
{
'_id': '3',
'name': 'C',
'parent': 'B',
},
{
'_id': '4',
'name': 'D',
'parent': 'C',
}
聚合结果:(Given, name = 'D')
{
'_id': '4',
'name': 'D',
'ancestors': [{name:'C'}, {name:'B'}, {name:'A'}]
}
Note:我现在无法更改文档结构。会引起很多问题。我看到许多建议使用Model Tree Structures with an Array of Ancestors 的解决方案。但我现在不能使用它。有没有办法使用单个聚合查询通过上述模式来实现它?谢谢
【问题讨论】:
-
为什么是
_id字符串? -
@Styvane 这只是一个例子。实际文档将具有 ObjectId
-
@RaR Styvane 的回答是否有什么对你不起作用的东西促使赏金?
-
@JohnnyHK Styvane 的回答将适用于 MongoDB v3.4 我一直在寻找一种适用于 MongoDB v2.6 及更高版本的方法
标签: mongodb aggregation-framework tree-structure