我使用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]在路径上。
我应该提一下,我对此有点新意,所以如果我使用过时/不正确的做法,请告诉我。
答案 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