我有一个“经典”树结构,以OrientDB为模型。
我想要的是在第2级查询(在一个查询中)特定节点并以最有效的方式获取所有前任
我有类似的东西:
> traverse out('hasParent') from (select from category where code='B2')
这是最有效的方法吗?
答案 0 :(得分:1)
此查询非常有效(O(logN),其中N是" category" class)中的节点数,如果您在category.code上定义了索引
无论如何,如果你知道B2的RID(假设它是#10:1),你可以写一个更快的查询:
traverse out('hasParent') from #10:1
此查询的成本为O(1)(恒定时间,不依赖于图形的大小,而只取决于结果集的大小)
所有这一切当然如果你知道ROOT没有父母,但如果它不是真的并且你想限制遍历深度,你可以写一个"而#34;遍历条件,就像这样
从#10:1遍历(' hasParent')而$ depth< 3