如何从Orient DB中选择分层数据树?

时间:2015-11-09 13:17:28

标签: orientdb

假设我在Orient DB中有3个类扩展了Vertex 和2延伸E

关系如下:

Class_V1 -> edge_E1 -> Class_V2 -> edge_E2 -> Class_V3

如何通过查询获得json中的嵌套树? 像

这样的东西
+class_V1{name:abc0}
|___+class_V2 {name:abc1}
|___+class_V2 {name:abc2}
|   |___+class_V3 {name:abc3}
|   |___+class_V3 {name:abc4)
+ class_V1 {name:abc5)

我试过了:

select name , out().name as children from class_V1 

但我只获得了我想要的第一级深度。

可以在一个查询中执行此操作吗?

我使用的是Orientdb-enterprise edition V.2.1.5

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我认为只用一个查询就可以得到这样的结果。您可以编写一个JS server-side function,以这种方式聚合结果。或者您可以使用表格式方法,这要归功于UNWIND关键字:

SELECT name, out().name AS children, out().out().name AS children2
FROM class_V1
UNWIND children, children2

这样你就有了一张平台。有关UNWIND的更多信息,请查看http://orientdb.com/docs/last/SQL-Query.html#unwind