我想寻找一个顶点,获取一个边“视图”,将其删除,然后用相同顶点之间的新边替换。
g.V('uuid','bf4dcbd24e9944319954dec5ad60c658')
.inE('views')
.sideEffect{g.addEdge(it.outV.next(),it.inV.next(),'likes')}
.sideEffect{g.removeEdge(it)}
这行得通,但这是最好的方法吗?重命名边缘是一种选择吗?
您可以像以前一样使用 sideEffect。这种方法具有直接且易于理解的积极方面。但是,我个人对“生产”Gremlin 代码的偏好是在可用时使用显式 Gremlin 函数。在这种情况下,我看到了使用“链接”和“步骤关闭”(https://github.com/tinkerpop/gremlin/wiki/Step-Closures)的机会:
gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.E
==>e[10][4-created->5]
==>e[7][1-knows->2]
==>e[9][1-created->3]
==>e[8][1-knows->4]
==>e[11][4-created->3]
==>e[12][6-created->3]
gremlin> g.v(1).as('x').outE('knows').as('toRemove').inV.except('x').linkIn('swonk','x').sideEffect{v,m->g.removeEdge(m.toRemove)}
==>v[2]
==>v[4]
gremlin> g.E
==>e[1][1-swonk->4]
==>e[10][4-created->5]
==>e[0][1-swonk->2]
==>e[9][1-created->3]
==>e[11][4-created->3]
==>e[12][6-created->3]
在上面,我将 gv(1) 的所有“知道”边缘“重命名”为“swonk”。
修复了queston eddit之前的第一个错误。
完毕...
g.V('uuid','bf4dcbd24e9944319954dec5ad60c658')
.inE('views')
.sideEffect{g.addEdge(it.outV.next(),it.inV.next(),'likes')}
.next()修复了脚本..