ArangoDB GRAPH TRAVERSAL通过特定节点

时间:2015-04-22 09:13:08

标签: arangodb graph-traversal

以美国城市为例,说我希望遍历经过纽约,芝加哥和西雅图的所有城市和道路。

这可以使用TRAVERSAL AQL函数(使用filterVertices)来完成。但是,此函数仅采用ID而非GRAPH_TRAVERSAL中的顶点示例。

GRAPH_TRAVERSAL没有过滤器选项,所以我的问题是有没有办法使用图形操作过滤结果?

1 个答案:

答案 0 :(得分:1)

该功能实际上存在,但不知何故没有记录。我将它添加到我们的文档中,应尽快更新。很抱歉给您带来不便。

filterVertices获取顶点示例列表。

  • 注意:您还可以提供自定义AQL函数的名称。签名function(config, vertex, path)。有关更具体的过滤。

vertexFilterMethod定义了应该对所有其他顶点做什么:

  • "prune"不会跟随附加到这些顶点的边。 (在这里使用)
  • "exclude"不会包含此特定顶点。
  • ["prune", "exclude"]以上两者。 (默认)

您的问题的示例查询如下(气道是我的图表):

FOR x in GRAPH_TRAVERSAL("airway", "a/SFO", "outbound", {filterVertices: [{_key: "SFO"}, {_key: "NYC"}, {name: "Chicago"}, {name: "Seattle"}], vertexFilterMethod: "prune"}) RETURN x

提示:确保在过滤器中也包含起始顶点。否则它将始终返回一个空数组(第一个访问的顶点被直接修剪)