问题描述
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()