Gremlin:在单个 gremlin 查询中添加一条边并删除一条边

Utt*_*ain 4 gremlin datastax-enterprise tinkerpop datastax datastax-enterprise-graph

如何在单个 gremlin 查询中向相同顶点类型添加边和删除边。

假设我们有两种类型的顶点类型 A --is--> B 现在我有一个顶点连接到 B 的其他顶点。

我想将 A 的顶点更新为 B 的其他顶点。

目前,我正在删除当前的 B 顶点,然后添加新的顶点。

ste*_*tte 6

您可以使用以下方法在一次遍历中完成此操作sideEffect()

gremlin> g.V().has('person','name','marko').as('m').
......1>   outE('knows').
......2>   filter(inV().has('person','name','vadas')).
......3>   sideEffect(drop()).
......4>   V().has('person','name','peter').
......5>   addE('knows').from('m')
==>e[13][1-knows->6]
Run Code Online (Sandbox Code Playgroud)

在第 1 行,我们基本上确定了要删除的边(即从“marko”到“vadas”的“知道”边),并在第drop()3 行确定了该边。在第 4 行,我们查找我们希望连接的顶点“marko”到现在,然后在第 5 行添加边缘。