簡體   English   中英

AQL - 在ArangoDB中查找具有非唯一屬性的文檔

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM