2

我需要使用 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 有 outE 到 B,C,D 。它返回 A 的标签。输出:

ListBuffer(100, 100, 100)

我有什么遗漏吗?

4

1 回答 1

2

我相信你最终要求错误的顶点。老实说,我经常犯同样的错误。也许这是您正在寻找的遍历:

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

如果你喜欢我并且经常被它弄糊涂inV()outV()你可以使用otherVwhich 得到相反的顶点。像这样:

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

最后,您甚至可以通过不明确说明边缘部分来缩短遍历:

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

通过使用out()而不是outE()你不需要指定你想要的顶点,out()直接得到你的顶点。

于 2016-09-29T13:52:26.170 回答