在 Gremlin 中,我将如何重定向所有进入一个顶点的边,以连接到另一个顶点?
In Gremlin how would I redirect all the edges coming into one vertex, to connect to another vertex?
我使用 Neptune 作为我的图形数据库。
假设我有一个主顶点 'A',我想将指向 'A' 的所有连接重定向到新的主顶点 'B'。我知道所有进入主顶点的边都标记为 'master_edge'.
目前我混合使用 python 和 gremlin 代码,我想知道是否有一种方法可以通过纯粹在 gremlin 中执行此操作来提高性能?
vertices_on_deck = g.V(old_master).inE().outV().toList()
for i, current_vertex in enumerate(vertices_on_deck):
if i == 0:
t = g.addE('master_edge').from_(__.V(current_vertex.id)).to(__.V(new_master))
else:
t.addE('master_edge').from_(__.V(current_vertex.id)).to(__.V(new_master))
t.iterate()
g.V(old_master).drop().iterate()
您可以将所有查询合并为一个:
g.V(old_master).as('oldMaster')
.inE().outV().addE('master_edge').to(__.V(new_master))
.select('oldMaster').drop().iterate()
我使用 Neptune 作为我的图形数据库。
假设我有一个主顶点 'A',我想将指向 'A' 的所有连接重定向到新的主顶点 'B'。我知道所有进入主顶点的边都标记为 'master_edge'.
目前我混合使用 python 和 gremlin 代码,我想知道是否有一种方法可以通过纯粹在 gremlin 中执行此操作来提高性能?
vertices_on_deck = g.V(old_master).inE().outV().toList()
for i, current_vertex in enumerate(vertices_on_deck):
if i == 0:
t = g.addE('master_edge').from_(__.V(current_vertex.id)).to(__.V(new_master))
else:
t.addE('master_edge').from_(__.V(current_vertex.id)).to(__.V(new_master))
t.iterate()
g.V(old_master).drop().iterate()
您可以将所有查询合并为一个:
g.V(old_master).as('oldMaster')
.inE().outV().addE('master_edge').to(__.V(new_master))
.select('oldMaster').drop().iterate()