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

Orientdb 如何从Orient DB中选择分层数据树?,orientdb,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

假设在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企业版V.2.1.5


提前感谢您的帮助。

我认为您不可能只通过一个查询就得到这样的结果。您可以编写一个以这种方式聚合结果的示例。或者您可以使用表格法,这要归功于关键字:


这样你就有了一张平桌。关于放松的更多信息,请看。

Uhmm我看了一下最终结果:D,我的错。差不多了,除了第一个关卡之后的记录被分为children1和children2,所以现在我有了同一关卡上的关卡2和3(在关卡1内部)。查看查询是有意义的。但是我必须做的每一个树都有嵌套的值,如果可能的话,我希望在一个查询中保留这些值。因此,现在回顾一下,我有level1,level2和level3在同一个级别下。我希望这是有意义的。我以前也尝试过使用traverse,但无法扩展name属性。提前感谢您的帮助。谢谢!知道了这一点,我省去了很多考验。当然,我会选择聚合结果。使用适当的
FETCHPLAN
策略不会导致完全物化的树(如果使用“轻量级edgets”)?
SELECT name, out().name AS children, out().out().name AS children2
FROM class_V1
UNWIND children, children2