Gremlin:如何在一次查询中获得出边和目标顶点。

问题描述 投票:0回答:1

给定一组顶点(比如,为了简单起见,我从一个顶点开始。G.V().hasId("something")),我想得到所有的出场边。 他们的目标顶点。我知道 .out() 会给我所有的目标顶点,但没有边的信息(边上也有属性)。另一方面。.outE() 会给我边缘,但不会给目标顶点。我可以在一个Gremlin查询中同时获得这两条边吗?

gremlin
1个回答
2
投票

Gremlin是关于转换图数据的,就像它是导航图数据一样。通常情况下,大家似乎先理解导航,这让你到。

g.V().hasId("something").outE()

然后你需要将这些边缘转化为你想要的结果--包括边缘数据和相邻顶点的数据。一种方法是用 project():

g.V().hasId("something").outE()
  project('e','v').
    by().
    by(inV())

每个 by()-调制器提供给 project() 与作为参数提供的键对齐。第一个适用于 "e",第二个适用于 "v"。第一个 by() 是空的,实际上是 by(identity()) 返回给它的相同参数(即流中的当前边)。


1
投票

不要紧。想到了这个问题。

G.V().hasId("something").outE().as("E").otherV().as("V").select("E", "V")

© www.soinside.com 2019 - 2024. All rights reserved.