Gremlin:查找具有重复项目的项目名称(按名称)

问题描述 投票:0回答:2

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

下面会生成一个项目名称列表,其中包含每个项目的计数 g.V()。hasLabel( '项目')。groupCount()。通过( '名')

所以我添加了过滤器以仅查找重复值,但它不起作用: g.V()。hasLabel( '项目')。groupCount()。由( '姓名')。其中(选择(值)。是(GT(1)))。值( '姓名')

orientdb gremlin
2个回答
0
投票

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

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

如果你没有unfold(),你在管道中有一个Map,当你真的想将它应用于where()中的每个单独的键/值对时,它会尝试将你的Map应用于整个对象。


0
投票

这对我有用:

g.V().hasLabel('project')
.group().by(values('name')
.fold()).unfold().filter(select(values)
.count(local).is(gt(1))).select(keys)
© www.soinside.com 2019 - 2024. All rights reserved.