遍历的负 filterVertices 选项

Negative filterVertices option for traversal

GRAPH_TRAVERSAL 有一个名为 filterVertices 的选项,文档指出该选项将用于仅允许那些与示例匹配的顶点通过。是否有任何负面版本,例如允许所有 除了 与过滤器匹配的内容?

在很多情况下这会很有用,例如遍历所有 except 标记为 disabled(或 old-version)或类似内容的所有内容。当然这可以用一个JS函数来完成,但为什么不内置呢?

你是对的,目前不可能,如果你想使用GRAPH_TRAVERSAL你必须编写自己的访问者函数。

但是,推荐的方法是使用 new pattern matching,您可以在其中使用 FILTER 语句,如下所示:

db._query("FOR vertex IN 1..3 OUTBOUND 'circles/A' GRAPH
          'traversalGraph' FILTER vertex._key != 'G' return v._key")
         .toArray();

因此您可以在顶点、边和路径及其子部分上使用任意过滤器表达式。

一般来说,我们的开发重点将放在模式匹配遍历上,并尽可能多地使用 AQL。如果你想为通用图形模块实现这样的功能,欢迎贡献。