【问题标题】:GREMLIN for Scala : How to drop edge between two vertex and connect edges between two vertex in single queryScala的GREMLIN:如何在单个查询中在两个顶点之间放置边并在两个顶点之间连接边
【发布时间】:2019-07-27 22:10:24
【问题描述】:

我正在使用 https://github.com/mpollmeier/gremlin-scala#getting-started 的 gremlin scala 库。

这是一个用例,有三个顶点(A,B,C)。两个 A、B 顶点已经与名为“IS”的边相连。

现在我想在单个 gremlin scala 查询中删除 A、B 之间的“IS”边并使用名为“IS”的边将 A 连接到 C。早些时候我写了两个不同的 gremlin scala 查询,一个用于删除边缘,另一个用于添加边缘,但我想将这两个查询合并为一个。

【问题讨论】:

  • 你能告诉我们你到目前为止的代码吗?

标签: scala playframework datastax-enterprise datastax-java-driver


【解决方案1】:

假设该库支持以下所有内容,您应该能够运行以下内容,这将删除 V(1) 和 V(2) 之间的关系,同时在 V(1) 和 V( 6)。

参考了一个相关的问题来制定这个问题,可以找到here

对于您的情况:A=1、B=2、C=6

gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin>  g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.E()
==>e[7][1-knows->2]
==>e[8][1-knows->4]
==>e[9][1-created->3]
==>e[10][4-created->5]
==>e[11][4-created->3]
==>e[12][6-created->3]
gremlin> g.V(1).as('A').bothE().where(otherV().hasId(2)).as('drop').addE('IS').from('A').to(V(6)).select('drop').drop()
gremlin> g.E()
==>e[8][1-knows->4]
==>e[9][1-created->3]
==>e[10][4-created->5]
==>e[11][4-created->3]
==>e[12][6-created->3]
==>e[13][1-IS->6]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2017-04-03
    • 2023-03-12
    • 1970-01-01
    • 2016-04-07
    • 2022-11-09
    相关资源
    最近更新 更多