给定一组强连通图的节点作为输入,我们可以在它们之间获得子图和路径遍历

时间:2018-03-05 15:53:12

标签: graph arangodb aql

我在ArangoDB AQL中有这个要求:我创建了一个使用Document集合创建的图表,用于节点和Edge集合,用于有向边缘关系。

我想输入节点列表的子集作为AQL查询的输入,并将所有节点遍历/子图作为输出。

如何从AQL实现这一目标? 我想以这种方式知道给定节点之间的关系。如果需要更多细节,请发表评论。

我现在知道以下查询

FOR v IN 1..1 INBOUND[or OUTBOUND] 'Collection/_key' EdgeCollection
OPTIONS {bfs: true}
RETURN v

1 个答案:

答案 0 :(得分:1)

我建议您查看ArangoDB sample page上的查询,其中显示了如何执行图表查询以及如何查看结果。

在上面的示例查询中,您只返回FOR v IN中的v(顶点信息)。

只返回查询返回的每个路径的最后一个顶点,它不返回边或路径信息。

为此您需要使用FOR v, e, p IN进行测试,它将返回有关最后一个边(e)和路径(p)的额外信息。

特别要查看p的结果,因为它包含一个保存路径信息的JSON对象,它是顶点和边的集合。

通过迭代这些数据,您应该能够提取所需的信息。

AQL为您提供了许多工具来聚合,分组,过滤,去重复和减少数据集,因此请确保您查看更广泛的语言功能并练习构建更复杂的查询。