我是Arangodb的新手,我正在尝试获取图中的最后一个/叶节点(我猜是顶点)。
现在我想从6010142开始遍历。查询应该返回6010625,因为它是通过6010145可以到达的最后一个节点。但是查询是什么样子的呢?
我已经试过了:
FOR v, e, p IN 1..5 OUTBOUND {_id: 'nodes/6010142'} GRAPH 'test' RETURN v
但它也返回6010145。此外,它被限制为maxDepth为5,但我的图形可以超过限制。所以我还需要一个解决方案,工程的任何深度。希望任何人都可以帮助我:-)
1条答案
按热度按时间u5rb5r591#
我也刚开始使用AQL,但这可能会有所帮助。
这个方法遵循an older ArangoDB cook book (p. 39)来寻找叶子节点,
filter
行取第一行找到的连接节点,并进行第二次遍历来检查这是否是一个叶子节点。如果您只对唯一的叶节点感兴趣,而不是对这些节点的所有不同路径感兴趣,则
OPTIONS {uniqueVertices: 'global', bfs: true}
部分是一种优化。关于maxDepth,我会使用一个足够大的数字,最坏的情况是图中的节点数。
(The您发布的图表和您的描述在边缘方向上似乎不一致。也许您需要使用
INBOUND
。)