ArangoDB에는 'people'이라는 컬렉션이 있습니다. 각 사람은 이름과 국적을가집니다. 이름이 두 번 이상 나오고 미국인 인 모든 사람의 키를 찾으려면 어떻게합니까?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 문은 목록의 목록을 만들고 올바르게 필터링하는 방법을 알 수 없습니다.