Gremlin,如何 return 由具有特定标签的边连接的所有顶点对

Gremlin, how to return all vertex pairs that are connected by an edge with a specific label

以航空公司连接图为例,如下图

我们能否想出一个 gremlin 查询,可以 return 对由 SW 连接的城市?喜欢[{ATL,CHI},{SFO,CHI},{DAL,CHI},{HSV,DAL}]

看来您可能只需要:

g.V().outE('SW').inV().path()  

如果你不想要结果中的边缘,你可以使用 flatMap :

g.V().flatMap(outE('SW').inV()).path()  

要取回一些属性而不仅仅是顶点,您需要做的就是在 path 步骤中添加一个 by 调制器。

g.V().flatMap(outE('SW').inV()).path().by(valueMap())

这将 return 每个顶点的所有属性。在大型结果集中,这不是最佳做法,您应该明确询问您关心的属性。使用 valuesprojectvalueMap,您可以通过多种方式执行此操作。如果您有一个名为 code 的 属性 代表机场代码,您可以这样做。

g.V().
  flatMap(outE('SW').inV()).
  path().
    by(valueMap('code'))

或者只是

g.V().flatMap(outE('SW').inV()).
  path().
    by('code')