實施例用於Tinkerpop Toy Graph(找到vadas的路徑[頂點2]〜彼得[頂點6]):
gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> start = g.v(2)
==>v[2]
gremlin> end = g.v(6)
==>v[6]
gremlin> start.as("x").both().loop("x", {it.object != end}, {true}).retain([end]).path()[0]
==>[v[2], v[1], v[3], v[6]]
查詢不是最佳的,並且將永遠運行如果不限制數量的結果,但它應該回答你的問題。
如果你想所有的屬性:
gremlin> start.as("x").both().loop("x", {it.object != end}, {true}).retain([end]).path().transform({ it.collect({ it.map() }) })[0]
==>[{age=27, name=vadas}, {age=29, name=marko}, {name=lop, lang=java}, {age=35, name=peter}]
如果你只需要一個單一的屬性:
gremlin> start.as("x").both().loop("x", {it.object != end}, {true}).retain([end]).path().transform({ it.collect({ it.name }) })[0]
==>[vadas, marko, lop, peter]
乾杯, 丹尼爾
謝謝丹尼爾。 「兩個」是什麼意思?我的意思是,它在Java API中有什麼模擬,'都是V'? – tkroman
請參閱:http://www.tinkerpop.com/docs/javadocs/gremlin/2.4.0/com/tinkerpop/gremlin/java/GremlinPipeline.html#both(java.lang.String ...) –