0

我想寻找一个顶点,获取一个边“视图”,将其删除,然后用相同顶点之间的新边替换。

g.V('uuid','bf4dcbd24e9944319954dec5ad60c658')  
.inE('views')
.sideEffect{g.addEdge(it.outV.next(),it.inV.next(),'likes')}
.sideEffect{g.removeEdge(it)}

这行得通,但这是最好的方法吗?重命名边缘是一种选择吗?

4

2 回答 2

1

您可以像以前一样使用 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”。

于 2013-08-23T01:55:43.037 回答
0

修复了queston eddit之前的第一个错误。


完毕...

g.V('uuid','bf4dcbd24e9944319954dec5ad60c658') 
.inE('views')
.sideEffect{g.addEdge(it.outV.next(),it.inV.next(),'likes')}

.next()修复了脚本..

于 2013-08-21T22:43:06.460 回答