我有一個MongoDB中具有樹結構的文檔列表,其中使用Model Tree Structures with Parent References模式。我想要一個聚合查詢返回祖先列表(直到根),給定'name'屬性。遞歸搜索MongoDB中的集合
結構:
{
'_id': '1',
'name': 'A',
'parent': '',
},
{
'_id': '2',
'name': 'B',
'parent': 'A',
},
{
'_id': '3',
'name': 'C',
'parent': 'B',
},
{
'_id': '4',
'name': 'D',
'parent': 'C',
}
聚合的結果:(考慮,名字= 'd')
{
'_id': '4',
'name': 'D',
'ancestors': [{name:'C'}, {name:'B'}, {name:'A'}]
}
Note:
我現在不能更改文檔的結構。這會造成很多問題。我看到許多解決方案建議使用Model Tree Structures with an Array of Ancestors。但我現在無法使用它。有沒有什麼辦法可以通過使用單個聚合查詢來實現上述模式?謝謝
爲什麼'_id'字符串? – styvane
@Styvane這只是一個例子。實際的文檔將有ObjectId – RaR
@RaR有沒有關於Styvane的答案,不適合你,這是提示賞金? – JohnnyHK