Sagen, ich habe folgende Dokumente:AQL - Finden Sie Dokumente mit nicht eindeutigen Attributen in ArangoDB
{"_key": "1", "name": "George Washington"}
{"_key": "2", "name": "George Washington"}
{"_key": "3", "name": "John Adams"}
{"_key": "4", "name": "Thomas Jefferson"}
{"_key": "5", "name": "George Washington"}
{"_key": "6", "name": "Thomas Jefferson"}
Ich möchte eine AQL-Anweisung schreiben, der die Schlüssel des Dokuments nach Namen gruppiert zurückgibt, aber nur, wenn der Name tritt mehr als einmal auf.
Also meine gewünschte Ausgabe ist:
[["1", "2", "5"], ["4", "6"]]
Bisher habe ich mit
FOR doc IN documents
LET key = doc._key
COLLECT name = doc.name INTO groups KEEP key
RETURN (FOR g IN groups RETURN g["key"])
kommen diese zurück:
[["1", "2", "5"], ["3"], ["4", "6"]]
Wie kann ich den AQL-Befehl ändern, um bekomme nur Arrays mit zwei oder mehr Einträgen?
Danke, das so gut funktioniert. Ich habe beide Abfragen (mit einem zusätzlichen LIMIT 1000) auf meinem ursprünglichen Datensatz getestet, der etwa 4,5 Millionen Dokumente enthält. Meine Anfrage dauerte 70 Sekunden, Ihre 60! –