获取scala gremlin

时间:2016-09-30 10:45:50

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

我正在尝试获取两个顶点之间的边属性值。例如。 A - >乙 A和B是两个顶点,它有边缘属性(名称)。

我的代码如下:

graph.V().hasLabel(A).outE().value("name").headOption()

它为我提供了名称的属性值。

在给定的两个顶点中,我得到None作为输出

graph.traversal().V().hasLabel(A).outE("test").outV().hasLabel(B).properties("name").headOption()

'测试' - 边缘标签 '名称' - 边缘属性

知道我的查询有什么问题。

1 个答案:

答案 0 :(得分:1)

对您在上一个问题的评论中无法回答此问题表示歉意。我认为你在寻找的是:

graph.traversal().V()
     .hasLabel("A").outE("test").as("x").otherV()
     .hasLabel("B").select("x").properties("name");

如果您只想要边缘属性的值,可以执行以下操作:

graph.traversal().V()
     .hasLabel("A").outE("test").as("x").otherV()
     .hasLabel("B").select("x").values("name");

旁注(为什么原始遍历错误):您的原始遍历:

graph.traversal().V().hasLabel(A).outE("test").outV().hasLabel(B).properties("name").headOption()

正在执行以下操作:

  1. 获取标签为"A"

  2. 的所有顶点
  3. 从这些顶点开始,按照带有标签"test"的向外边缘到具有标签" B"

  4. 的顶点
  5. 然后从这些顶点获取属性"name"

  6. 您实际上是在询问顶点上的属性。