如何从顶点scala gremlin获取所有传出边的所有顶点

时间:2016-09-29 11:48:49

标签: scala graph-databases titan gremlin gremlin-server

我需要使用scala gremlin从顶点获取所有传出egdes的顶点标签列表。

我的代码如下所示,

val names :ListBuffer[String] = ListBuffer()
val toList: List[Vertex] = graph.V().hasLabel(100).outE().outV().toList()
for(vertex <- toList){
      names  += vertex.label()
    }

它为所有顶点返回相同的标签名称 例如: 顶点A具有out到B,C,D。它返回A的标签。 输出:

ListBuffer(100, 100, 100)

我缺少什么?

1 个答案:

答案 0 :(得分:2)

我相信你到底要求错误的顶点。老实说,我经常犯同样的错误。也许这就是你要寻找的遍历:

graph.V().hasLabel(100).outE().inV().label().toList()

如果您喜欢我,并且常常被inV()outV()弄糊涂,您可以使用获得相反顶点的otherV。像这样:

graph.V().hasLabel(100).outE().otherV().label().toList()

终于你甚至可以通过不明确说明边缘部分来缩短你的遍历:

graph.V().hasLabel(100).out().label().toList()

使用out()代替outE(),您不需要指定您想要的顶点,out()可以直接获取顶点。