如何通过Java访问Gremlin中路径的顶点?

时间:2017-07-28 12:33:20

标签: gremlin

我使用Java访问Gremlin。我有以下几行代码用于在已创建的图形中的两个顶点之间创建路径:

//begin simple path finding
        Vertex fromNode = g.V().has("name", "i2").next();
        Vertex toNode = g.V().has("name", "state1").next();
        ArrayList list = new ArrayList();
        g.V(fromNode).repeat(both().simplePath()).until(is(toNode)).limit(1).path().fill(list);

然而,在这一点上,我被困住了。我可以使用list.toString()打印出列表,然后我得到(我相信)在路径上的顶点。但是,我现在想要自己获取这些顶点,访问并可能改变它们的数据。例如,如果我无法访问ID 32本身,则不足以知道v [32]在路径上。

我应该提一下,我对此有点新意,所以如果我使用过时/不正确的做法,请告诉我。

2 个答案:

答案 0 :(得分:2)

您最终得到了一个填充了if response.success { let resObj = response.responseObject as! Dictionary<String, Any> let dataArray = resObj["data"] as! Array<Dictionary<String, Any>> ... 个对象的列表。我认为您正在寻找的是Path步骤(see the docs),因此您可以展开/展开路径中的元素以放入列表中。这是一个展示它的Gremlin控制台会话:

unfold()

答案 1 :(得分:1)

您应该可以访问fill步骤中使用的这些列表。 toString方法不会打印出属性。如果您只想查看这些内容,则可以在遍历结束时拨打valueMap()而不是fill。如果您想迭代所有顶点并获取属性,可以使用properties方法。如果要获取特定属性,可以使用property(key)方法。您需要的其余部分位于the API docs