GRAMLIN for Scala:如何在单个查询中删除两个顶点之间的边缘并连接两个顶点之间的边

问题描述 投票:0回答:1

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

这是一个用例,有三个顶点(A,B,C)。两个A,B顶点已经与边缘名称“IS”连接。

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

scala playframework datastax-enterprise datastax-java-driver
1个回答
0
投票

假设该库支持以下所有内容,您应该能够运行以下操作,这将删除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]
© www.soinside.com 2019 - 2024. All rights reserved.