格林姆林:查找重复的项目名称(按名称)

时间:2019-03-20 19:43:48

标签: orientdb gremlin

我有一些将“名称”作为属性的项目,我想生成重复项列表。我尝试通过按名称对项目进行分组,并使用where子句在项目名称计数大于1的情况下过滤结果并显示这些名称来做到这一点。

下面将生成项目名称的列表以及每个项目的计数
g.V()。hasLabel('project')。groupCount()。by('name')

所以我添加了过滤器以仅查找重复值,但它不起作用:
g.V()。hasLabel('project')。groupCount()。by('name')。where(select(values).is(gt(1)))。values('name')

2 个答案:

答案 0 :(得分:0)

您需要unfold()个计数Map(),因此:

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

如果您不unfold(),则您有Map在管道中,并且当您确实想将where()应用于对象时,它将尝试将其应用于整个对象Map中的每个键/值对。

答案 1 :(得分:0)

这对我有用:

g.V().hasLabel('project')
.group().by(values('name')
.fold()).unfold().filter(select(values)
.count(local).is(gt(1))).select(keys)