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 每个顶点的所有属性。在大型结果集中,这不是最佳做法,您应该明确询问您关心的属性。使用 values
、project
或 valueMap
,您可以通过多种方式执行此操作。如果您有一个名为 code
的 属性 代表机场代码,您可以这样做。
g.V().
flatMap(outE('SW').inV()).
path().
by(valueMap('code'))
或者只是
g.V().flatMap(outE('SW').inV()).
path().
by('code')
以航空公司连接图为例,如下图
[{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 每个顶点的所有属性。在大型结果集中,这不是最佳做法,您应该明确询问您关心的属性。使用 values
、project
或 valueMap
,您可以通过多种方式执行此操作。如果您有一个名为 code
的 属性 代表机场代码,您可以这样做。
g.V().
flatMap(outE('SW').inV()).
path().
by(valueMap('code'))
或者只是
g.V().flatMap(outE('SW').inV()).
path().
by('code')