1

假设我有一个看起来像变量树的图形。我有Vertex并且我对最后一点的下落一无所知,除了它id0。我看过一些 Gremlin 用法的例子,但找不到合适的例子——它们基本上都做类似的事情x.out.in.out,这在我的情况下是不适用的。我也使用 Java 绑定,因此如果您对此事实作出答复,我将不胜感激。

PS也许我应该更具体。我还想收集所有properties这些节点,所以如果有某种 a reduce/foldLeft等,但仅限于pipes - 那太好了。

4

1 回答 1

0

Tinkerpop Toy Graph示例(查找从 vadas [顶点 2] 到 peter [顶点 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]

干杯,丹尼尔

于 2013-12-19T22:30:53.840 回答