ArangoDB图遍历:排除边

3

我正在执行类似于以下的查询:

FOR v, e IN 1..10 ANY @start GRAPH @graph
    FILTER e.someCondition
    RETURN v

我原本期望的是,如果e.someConditionfalse,那么相应的边将不被遍历(并且所有仅通过e可达的其他顶点和边也永远不会被访问)。
然而,实际上发生的情况似乎是e被简单地跳过,然后遍历继续沿着该路径进行。
那么,我如何使用AQL在边属性上设置图遍历的边界?
1个回答

3

查询支持v、e和p,其中p是它所采取的路径。

ArangoDB文档显示了一些示例。

我用它来排除指定深度路径中的特定节点,但您必须指定节点深度,例如p.vertices[0].something != 'value')。

另一件您可能想要查看的事情是使用“自定义访问者”函数,这些函数在查询沿着路径向下遍历时进行评估。

这篇好的博客文章这个ArangoDB指南展示了一些实际的例子,值得阅读和努力使示例工作。我已经使用这些函数来总结路径中按路径上的顶点属性聚合的数据,但您也可以使用它来跟随自定义路径。

这很值得努力,因为在遍历图时它可以赋予你巨大的灵活性。你可以排除分支,仅包含符合特定要求的分支,或者聚合有关所经过路径的数据。
希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接