3

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

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

这可能吗?

4

1 回答 1

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

于 2020-09-08T12:09:30.730 回答