1

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

我的代码如下所示:

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

它给了我名称的属性值。

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

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

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

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

4

1 回答 1

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. 从这些顶点沿着具有标签的向外延伸的边缘"test"到具有标签“B”的顶点

  3. "name"然后从这些顶点获取属性

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

于 2016-09-30T11:17:22.980 回答