从节点获取图中的所有路径,但只有终止的路径

问题描述

我编写了以下查询,该查询返回了来自指定节点的所有可能路径。

g.V(<some_id>).repeat(bothE().bothV().simplePath()).emit().dedup().path()

如果我们在此结构中有一个包含3个节点的简单图形:

A -- edge_1 -> B -- edge_2 -> C

查询将返回两个路径:

A,edge_1,B
A,B,edge_2,C

但是,我只想返回所有终止的路径(即没有其他要遍历的节点),在此示例中,它们只会返回

A,C

这可能吗?

解决方法

您可以尝试执行repeat,而无需执行emit步骤,并使用until在路径的末尾停止。

g.V().hasLabel('A').repeat(bothE().bothV().
    simplePath()).
  until(bothE().simplePath().
    count().is(eq(0))).dedup().path()

示例:https://gremlify.com/jqr8y7p24wb

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...