【发布时间】:2018-06-20 11:34:47
【问题描述】:
我有以下 Gremlin 遍历,在 Azure CosmosDB 上运行,我只想返回计数大于 1 的 URL。我不确定如何限制 groupCount() 的返回。
g.V().hasLabel('article').values('url').groupCount()
【问题讨论】:
我有以下 Gremlin 遍历,在 Azure CosmosDB 上运行,我只想返回计数大于 1 的 URL。我不确定如何限制 groupCount() 的返回。
g.V().hasLabel('article').values('url').groupCount()
【问题讨论】:
根据我对 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)))
【讨论】:
这是现代玩具图中的一个例子:
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)))
【讨论】:
g.V().hasLabel('article').groupCount().by('url').unfold().where(select(values).is(gt(1)))