【问题标题】:Gremlin groupCount() return only gt 2Gremlin groupCount() 仅返回 gt 2
【发布时间】:2018-06-20 11:34:47
【问题描述】:

我有以下 Gremlin 遍历,在 Azure CosmosDB 上运行,我只想返回计数大于 1 的 URL。我不确定如何限制 groupCount() 的返回。

g.V().hasLabel('article').values('url').groupCount()

【问题讨论】:

    标签: azure-cosmosdb gremlin


    【解决方案1】:

    根据我对 Stephen Mallette 的回答的评论,Azure CosmosDB Graph https://docs.microsoft.com/en-us/azure/cosmos-db/gremlin-support 不支持 filter 步骤,因此我使用 where 步骤来实现所需的结果。

    g.V().hasLabel('article').groupCount().by('url').unfold().where(select(values).is(gt(1)))

    【讨论】:

      【解决方案2】:

      这是现代玩具图中的一个例子:

      gremlin> g = TinkerFactory.createModern().traversal()
      ==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
      gremlin> g.V().hasLabel('software').in().
      ......1>   groupCount().
      ......2>     by('name').
      ......3>   unfold().
      ......4>   filter(select(values).unfold().is(gt(1)))
      ==>josh=2
      

      所以你执行groupCount(),然后是unfold(),得到Map,然后是filter() values 来自Map

      在你的情况下,你可能会有类似的东西:

      g.V().hasLabel('article').
        groupCount()
          by('url').
        unfold().
        filter(select(values).unfold().is(gt(1)))
      

      【讨论】:

      • Azure CosmosDB Graph 好像不支持 filter 步骤,所以我使用 where 步骤如下得到我的结果寻找。谢谢你的帮助。 g.V().hasLabel('article').groupCount().by('url').unfold().where(select(values).is(gt(1)))
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 2019-02-28
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多