Arangodb 如何查找重复文档?

Arangodb 如何查找重复文档?,arangodb,aql,Arangodb,Aql,非常奇怪的是,我在文档中并没有找到答案,这里是一个非常简单的问题。如何在集合中查找重复记录。例如,我需要为下一个文档找到重复的id: {"id": 1, name: "Mike"}, {"id": 2, name: "Jow"}, {"id": 3, name: "Piter"}, {"id": 1, name: "Robert"} 我

非常奇怪的是,我在文档中并没有找到答案,这里是一个非常简单的问题。如何在集合中查找重复记录。例如,我需要为下一个文档找到重复的
id

{"id": 1, name: "Mike"},
{"id": 2, name: "Jow"},
{"id": 3, name: "Piter"},
{"id": 1, name: "Robert"}

我需要查询将返回两个具有相同id的文档(
id:1,在我的示例中为
)。

查看COLLECT-AQL命令,它可以返回包含重复值的文档计数,例如id键

您可以在AQL中大量使用LET来帮助将查询分解为更小的步骤,并在将来的查询中处理输出

也可以将其全部折叠为一个查询,但这种技术有助于将其分解

LET duplicates = (
    FOR d IN myCollection
    COLLECT id = d.id WITH COUNT INTO count
    FILTER count > 1
    RETURN {
        id: id,
        count: count
    }
)

FOR d IN duplicates
FOR m IN myCollection
FILTER d.id == m.id
RETURN m
这将返回:

[
  {
    "_key": "416140",
    "_id": "myCollection/416140",
    "_rev": "_au4sAfS--_",
    "id": 1,
    "name": "Mike"
  },
  {
    "_key": "416176",
    "_id": "myCollection/416176",
    "_rev": "_au4sici--_",
    "id": 1,
    "name": "Robert"
  }
]

我已经看过了,但不明白它是如何帮助查找重复项的。您可以在.id键上添加索引,这样可以加快查找速度。您可以再详细说明一下吗?查询的结果应该是什么?只是重复的身份证?包含重复ID的完整文档?