2
在ArangoDB中,我有一个'人员'集合。每个人都有一个名字和一个国籍。 我如何找到名字不止一次出现在美国人身上的所有人的钥匙?AQL:查找所有名字多次出现并且是美国人的人
我可以分别运行这两个查询。 选择所有的人的名字出现不止一次:
FOR p IN people
LET key = p._key
COLLECT p.name INTO groups KEEP key
FILTER LENGTH(groups) >= 2
LET group = groups[*].key
RETURN group
选择谁是美国所有的人:
FOR p IN people
FILTER p.nationality == 'American'
RETURN p._key
但我无法弄清楚如何将这两者结合起来。问题是我需要在之后筛选国籍,检查名称是否是非唯一的(因为可能有美国的约翰史密斯和英国的约翰史密斯)。 然而,COLLECT语句会创建一个列表清单,我无法弄清楚如何正确地过滤它。