【问题标题】:Gremlin, how to return all vertex pairs that are connected by an edge with a specific labelGremlin,如何返回由具有特定标签的边连接的所有顶点对
【发布时间】:2020-09-02 22:44:01
【问题描述】:

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

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

【问题讨论】:

    标签: gremlin tinkerpop


    【解决方案1】:

    看起来你可能只需要:

    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())
    

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

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

    或者只是

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

    【讨论】:

    • 谢谢。这给了我路径,但是我怎样才能得到顶点的 valueMap 呢?寻找具有值而不是引用顶点的响应
    • 我有这样的东西 g.V().flatMap(outE('SW').inV()).path().map(__.unfold().map(__.valueMap() )。折叠())。想检查是否有更好的方法来做到这一点
    • 我在答案中添加了更多示例。当您刚开始使用 Gremlin 时,您可能会发现本指南很有帮助:kelvinlawrence.net/book/PracticalGremlin.html
    猜你喜欢
    • 2021-12-27
    • 2021-10-11
    • 2023-01-15
    • 1970-01-01
    • 2014-05-15
    • 2020-09-05
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多