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

时间:2020-09-08 11:29:33

标签: graph gremlin gremlinpython

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

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

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

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

此查询将返回两个路径:

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

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

A, edge_1, B, edge_2, C

这可能吗?

1 个答案:

答案 0 :(得分:1)

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

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

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