在 scala gremlin 中获取两个顶点之间的传出边 属性 值

Fetch outgoing edge property value between two vertices in scala gremlin

我正在尝试获取两个顶点之间的边 属性 值。例如。 A-->B A 和 B 是两个顶点,它的边为 属性(name).

我的代码如下:

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

它给了我名称的 属性 值。

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

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

'test' - 边缘标签 '名称' - 边属性

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

很抱歉无法在您对上一个问题的评论中回答这个问题。我想你要找的是:

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"

你实际上是在请求顶点的属性。