1

我正在尝试使用以下构造完成逐顶点子图匹配:

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适当的方式修改 -vertex 。当我在执行这些 Gremlin 步骤后打印时p- 它看起来像一条管道。但更明确p = g.v(p.out.id)的,p = g.v(p.outE.inV.id)甚至数字i++的副作用似乎根本不会修改该值。

我在 Neo4j Gremlin shell 和 Groovy 中都试过这个。

4

1 回答 1

2

如果您在期望其他内容时获得了管道,请尝试使用 next() 来查看是否可以满足您的需求。请注意,当我在 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]
于 2013-02-04T12:14:30.680 回答