gpt4 book ai didi

graph-databases - 使用 OrientDB 递归遍历有向边

转载 作者:行者123 更新时间:2023-12-01 10:39:00 25 4
gpt4 key购买 nike

我正在尝试递归遍历给定节点的出站边缘,而不是入站边缘。我想要查询结果中的外边和外顶点。

在下图中,从(a)开始,我需要(a),(b),(c),(d),(e),包括边缘,但不包括(c)之后的部分,这是<-- (x)

(a) -->  (b) --> (c) <-- (x)
˙--> (d) --> (e)

如果我尝试执行以下操作,那么无论边缘方向如何,它都会递归遍历所有内容,因此也会返回 (x):

TRAVERSE * FROM (SELECT FROM a) LIMIT -1` 

如果我不 t traverse *, but outE()`,它只检索起始节点及其直接邻居:(a)、(b)、(d),因此它不进行递归。

traverse outE() from (SELECT FROM a) LIMIT -1

我还尝试按照 here 上的文档进行操作,并遍历了V.out, E.in但它只返回 (a) 而没有遍历。

traverse V.out, E.in from (SELECT FROM a) LIMIT -1`

还尝试使用变体,例如 WHILE $depth < 10 ,但这没有任何区别,现在我被卡住了。

运行 OrientDB 2.0.12

最佳答案

图表: graph friend model representation

从#33:289990 开始递归地只获取传出边的遍历查询:

traverse out('IsFriendsWith') from #33:289990

output of the traversal query

遍历查询以递归地获取多个边缘类传出顶点:

traverse out('IsFriendsWith'), out('secondEdgeClassName') from #33:289990

递归获取边和顶点实例的遍历查询:

traverse out('IsFriendsWith'), outE('IsFriendsWith') from #33:289990

关于graph-databases - 使用 OrientDB 递归遍历有向边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31561945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com