Gremlin:删除重复的父边

时间:2019-03-15 15:40:44

标签: gremlin

我的查询

g.V().has("a","123").has("s","1").has("e","p").has("r","e-1").repeat(outE().where(values("startTime").is(gte("2018-12-15"))).where(values("endTime").is(lte("2018-12-16"))).otherV().simplePath()).emit().path().by(valueMap("a","s")).fold()

我得到的结果是

A-> B

A-> B-> C

A-> B-> C-> D

如何从输出中删除前两行?

所需的输出:A-> B-> C-> D

谢谢

1 个答案:

答案 0 :(得分:1)

首先不要发出路径。

edgeTraversal = outE().
           has("startTime", gte("2018-12-15")).
           has("endTime", lte("2018-12-16")).simplePath(); []
g.V().has("a","123").has("s","1").has("e","p").has("r","e-1").
  repeat(edgeTraversal.clone().inV()).
    until(__.not(edgeTraversal)).
  path().
    by(valueMap("a","s")).fold()

没有子遍历变量:

g.V().has("a","123").has("s","1").has("e","p").has("r","e-1").
  repeat(outE().
           has("startTime", gte("2018-12-15")).
           has("endTime", lte("2018-12-16")).simplePath().inV()).
    until(__.not(outE().
                   has("startTime", gte("2018-12-15")).
                   has("endTime", lte("2018-12-16")).simplePath())).
  path().
    by(valueMap("a","s")).fold()