Gremlin,如何返回通过边与特定标签相连的所​​有顶点对

问题描述

一个简单的航空公司连接图示例为例,如下图所示

enter image description here

我们可以提出一个可以返回由SW连接的成对城市的gremlin查询吗?像[{ATL,CHI},{SFO,{DAL,{HSV,DAL}]

解决方法

看起来您可能需要的只是:

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

如果您不希望结果出现边缘,可以使用flatMap

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

要获取某些属性而不仅仅是顶点,只需在by步骤中添加一个path调制器。

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

这将返回每个顶点的所有属性。在较大的结果集中,这不是最佳做法,您应该明确要求您关心的属性。使用valuesprojectvalueMap可以通过多种方式进行。如果您有一个名为code的属性来表示机场代码,则可以这样做。

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

或者只是

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