是否可以在 gremlin 中更改顶点之间的边
Is it possible to change edges between vertices in gremlin
我有一个场景,我可能需要更新已存在边的 from/to 顶点。我认为 gremlin 中没有任何机制可以这样做。那么,实现此类功能的理想方法是什么?我能想到的是-
- 假设边中的顶点随时间变化,请确保边 ID 是唯一的,例如“From-Relationshipname”
- 添加新边时检查边是否已经存在,然后使用 EdgeId 删除旧边并创建新边
这是一种有效的方法吗?
查看 Gremlin 文档中发布的以下移动边的方法。
“marko”顶点包含到“vadas”顶点的“知道”边。以下代码显示了如何在一次遍历中将该边“移动”到“peter”顶点:
g.V().has('name','marko').as('a').
outE('knows').as('e1').filter(inV().has('name','vadas')).
V().has('name','peter').
addE('knows').from('a').as('e2').
sideEffect(select('e1').properties().
unfold().as('p').
select('e2').
property(select('p').key(), select('p').value())).
select('e1').drop()
来源:https://tinkerpop.apache.org/docs/current/recipes/#edge-move
我有一个场景,我可能需要更新已存在边的 from/to 顶点。我认为 gremlin 中没有任何机制可以这样做。那么,实现此类功能的理想方法是什么?我能想到的是-
- 假设边中的顶点随时间变化,请确保边 ID 是唯一的,例如“From-Relationshipname”
- 添加新边时检查边是否已经存在,然后使用 EdgeId 删除旧边并创建新边
这是一种有效的方法吗?
查看 Gremlin 文档中发布的以下移动边的方法。
“marko”顶点包含到“vadas”顶点的“知道”边。以下代码显示了如何在一次遍历中将该边“移动”到“peter”顶点:
g.V().has('name','marko').as('a').
outE('knows').as('e1').filter(inV().has('name','vadas')).
V().has('name','peter').
addE('knows').from('a').as('e2').
sideEffect(select('e1').properties().
unfold().as('p').
select('e2').
property(select('p').key(), select('p').value())).
select('e1').drop()
来源:https://tinkerpop.apache.org/docs/current/recipes/#edge-move