我正在尝试查看是否有办法将平面列表转换为 rethinkdb 中的分层树。
鉴于此表:
nodes
------
-id
-name
-parent
我可以查询所有r.db('app').table('nodes')
内容并获得一个平面列表:
[
{name: "one", id: "1"}
{name: "two", id: "2", parent: "1"}
{name: "three", id: "3", parent: "2"}
]
但我真的很想要一个以层次结构返回数据的查询:
[
{
name: "one",
id: "1",
children: [
{
name: "two",
id: "2",
children: [
{name: "three", id: "3"}
]
}
]
}
]
这在 rethinkdb 中可能吗?Postgres 对此有WITH RECURSIVE查询。目前我正在应用程序层进行转换,但它变得越来越复杂——例如,要获取单个节点,我还必须获取所有节点,递归地添加其后代,然后只返回请求的节点。无论如何,如果可能的话,我很想在 rethinkdb 中找到一种方法来做到这一点。谢谢!