GRAPH_TRAVERSAL_TREE 忽略 filterVertices,GRAPH_TRAVERSAL 不

GRAPH_TRAVERSAL_TREE ignores filterVertices, GRAPH_TRAVERSAL doesn't

我正在尝试修剪遍历。当我使用 AQL GRAPH_TRAVERSAL 函数时,它按预期工作。但是,使用 GRAPH_TRAVERSAL_TREE 更改 GRAPH_TRAVERSAL 函数会将整个树扩展到 filterVertices 示例之后。

从 GRAPH_TRAVERSAL 移动到 GRAPH_TRAVERSAL_TREE 时,我需要更改哪些内容?

在尝试重现您的问题时,我遇到了一个类似的陷阱:我忘记了 GRAPH_TRAVERSAL_TREE() - 函数的一个参数,然后 return 结果会比预期的多。当参数个数正确时,我们可以比较一个 traversal over the city graph:

未经过滤我们还会在结果集中看到Paris及其后面的节点:

FOR e IN GRAPH_TRAVERSAL_TREE('routeplanner',
  'germanCity/Hamburg',
  'outbound',
  'connection') RETURN e"

如果我们过滤 isCapital == false,这些节点将丢失:

FOR e IN GRAPH_TRAVERSAL_TREE('routeplanner', 
  'germanCity/Hamburg',
  'outbound',
  'connection',
  {filterVertices: [{isCapital: false }]}) RETURN e

请注意带有 'connection' 字符串的参数,它指定了如何在结果中命名子属性。如果您忘记了它,选项对象将取而代之,您将在结果中看到像 '[object Object]' 这样的键名加上过滤不起作用。