【问题标题】:Is there a way to reverse a list in Gremlin?有没有办法在 Gremlin 中反转列表?
【发布时间】:2021-04-09 15:28:46
【问题描述】:

Gremlin 查询通常使用或生成列表。有时希望能够反转列表。目前 Gremlin 没有reverse 步骤,因此您不能执行以下操作:

g.inject(['A','B','C','D']).reverse()

order 也没有 reverse 选项,所以你不能做类似的事情

g.inject(['A','B','C','D']).order(local).by(reverse)

今天有没有办法在 Gremlin 中反转列表而不必依赖使用闭包?

【问题讨论】:

    标签: gremlin tinkerpop tinkerpop3


    【解决方案1】:

    今天可以仅使用现有的 Gremlin 步骤来执行此操作。下面的示例利用index 步骤为列表的每个元素提供索引号。例如:

    gremlin> g.inject(['A','B','C','D']).index()
    ==>[[A,0],[B,1],[C,2],[D,3]]   
    

    鉴于该构建块,我们可以使用这些索引值并对列表进行排序。

    gremlin>  g.inject(['A','B','C','D']).index().
    ......1>    unfold().
    ......2>    order().
    ......3>      by(tail(local,1),desc)
    ==>[D,3]
    ==>[C,2]
    ==>[B,1]
    ==>[A,0]   
    

    最后一步是返回删除了索引值的重新排序的列表。

    gremlin>  g.inject(['A','B','C','D']).index().
    ......1>    unfold().
    ......2>    order().
    ......3>      by(tail(local,1),desc).
    ......4>    limit(local,1).
    ......5>    fold()  
    ==>[D,C,B,A]     
    

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 2020-01-11
      • 2019-11-20
      • 2016-07-27
      • 2020-12-13
      • 2021-05-02
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多