我正在尝试使用以下构造完成顶点子图匹配:
a = g.v(1)
p = g.v(5)
a.filter{it.map() == p.map()}.out.sideEffect{p = p.out}.loop(3){it.object != null}
我应该说地图比较出人意料地运作得很好,但副作用部分似乎并没有以适当的方式修改p
- 顶点。当我在执行这些Gremlin步骤后打印p
- 它看起来像一个管道。但更明确的p = g.v(p.out.id)
,p = g.v(p.outE.inV.id)
甚至数字i++
副作用似乎根本不会修改该值。
我在Neo4j Gremlin shell和Groovy中都尝试了这个。
答案 0 :(得分:2)
如果你在期待别的东西的时候得到一个管道,试试下一个(),看看是否能得到你想要的东西。请注意,当我在sideEffect闭包中的next()时,x会发生变化。
gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> x = g.v(1)
==>v[1]
gremlin> g.V.out.sideEffect{x = x.out.next()}
==>v[2]
gremlin> x
==>v[2]