在Gremlin中的现有节点之间添加边

在Gremlin中的现有节点之间添加边,gremlin,Gremlin,我对小精灵还不熟悉,只是想建立一个基本的图表。我已经能够在新的顶点上做一个基本的加法,即 gremlin> v1 = g.addVertex() ==>v[200004] gremlin> v2 = g.addVertex() ==>v[200008] gremlin> e = g.addEdge(v1, v2, 'edge label') ==>e[4c9f-Q1S-2F0LaTPQN8][200004-edge label->200008] 我还能

我对小精灵还不熟悉,只是想建立一个基本的图表。我已经能够在新的顶点上做一个基本的加法,即

gremlin> v1 = g.addVertex()
==>v[200004]
gremlin> v2 = g.addVertex()
==>v[200008]
gremlin> e = g.addEdge(v1, v2, 'edge label')
==>e[4c9f-Q1S-2F0LaTPQN8][200004-edge label->200008]
我还能够在id查找的顶点之间创建边:

gremlin> v1 = g.v(200004)
==>v[200004]
gremlin> v2 = g.v(200008)
==>v[200008]
gremlin> e = g.addEdge(v1, v2, 'edge label')
==>e[4c9f-Q1S-2F0LaTPQN8][200004-edge label->200008]
但是,我现在想基于多个属性查找顶点,这是需要技巧的地方。为了查找右顶点,我对
.has
进行了两次调用。似乎找到了正确的顶点,但添加边失败

gremlin> v1 = g.V.has("x",5).has('y",7)
==>v[200004]
gremlin> v2 = g.V.has("x",3).has('y",5)
==>v[200008]

gremlin> e = g.addEdge(v1, v2, 'edge label')
No signature of method: groovy.lang.MissingMethodException.addEdge() is applicable for argument types: () values: []

基于属性值查找,在两个现有顶点之间添加简单边的最简单方法是什么?

关键问题是
.has
返回一个:为了获得特定顶点实例,只需调用
.next()
即可:

gremlin> v1 = g.V.has("x",5).has('y",7).next()
==>v[200004]
gremlin> v2 = g.V.has("x",3).has('y",5).next()
==>v[200008]

gremlin> e = g.addEdge(v1, v2, 'edge label')
==>e[4c9f-Q1S-2F0LaTPQN8][200004-edge label->200008]
请注意,
.next()
将只返回管道中的下一项。在这种情况下,将忽略与属性值匹配的任何其他顶点。

请参见,我认为此答案已过时,因为不再使用addEdge。有关当前文档,请参见此处: