[英]AQL - Find documents with nonunique attributes 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"}
我想編寫一個AQL語句,它返回按名稱分組的文檔的鍵, 但僅在名稱出現多次時才返回。
所以我想要的輸出是:
[["1", "2", "5"], ["4", "6"]]
到目前為止,我已經提出了
FOR doc IN documents
LET key = doc._key
COLLECT name = doc.name INTO groups KEEP key
RETURN (FOR g IN groups RETURN g["key"])
返回:
[["1", "2", "5"], ["3"], ["4", "6"]]
如何修改AQL命令以僅獲取具有兩個或更多條目的數組?
另一種可能性(由於不涉及子查詢,可能會更高效):
FOR doc IN documents
LET key = doc._key
COLLECT name = doc.name INTO groups KEEP key
LET keys = groups[*].key
FILTER LENGTH(keys) > 1
RETURN keys
解決了它:
FOR doc IN documents
LET key = doc._key
COLLECT name = doc.name INTO groups KEEP key
LET groups2 = (FOR group IN groups RETURN group["key"])
FILTER LENGTH(groups2) >= 2
RETURN groups2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.