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]'
这样的键名加上过滤不起作用。
我正在尝试修剪遍历。当我使用 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]'
这样的键名加上过滤不起作用。