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的完整文档?