【问题标题】:Gremlin: remove repeated parent edgesGremlin:删除重复的父边
【发布时间】:2019-03-15 15:40:44
【问题描述】:

我的查询:

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

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

期望的输出:A-->B-->C-->D

谢谢

【问题讨论】:

    标签: gremlin


    【解决方案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()
    

    【讨论】:

    • 我得到一个例外,如果我使用这个。 groovy.lang.MissingPropertyException:没有这样的属性:类的edgeTraversal:org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal。也试过def edgeTraversalas
    • 我不知道您使用的是哪个图形数据库,也不知道它为什么不起作用,但您始终可以复制查询并删除变量。我会将此添加到我的答案中。
    猜你喜欢
    • 2019-07-26
    • 2015-08-24
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多