很奇怪,我在文档中没有找到答案,这里有一个非常简单的问题。如何在集合中找到重复的记录。例如,我需要在下一个文档中找到id的重复记录:
id
{"id": 1, name: "Mike"}, {"id": 2, name: "Jow"}, {"id": 3, name: "Piter"}, {"id": 1, name: "Robert"}
我需要查询将返回两个具有相同id的文档(在我的例子中为id: 1)。
id: 1
l5tcr1uw1#
看一下COLLECTAQL命令,它可以返回包含重复值的文档的计数,例如您的id键。ArangoDB AQL - COLLECT您可以在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" } ]
1条答案
按热度按时间l5tcr1uw1#
看一下COLLECTAQL命令,它可以返回包含重复值的文档的计数,例如您的id键。
ArangoDB AQL - COLLECT
您可以在AQL中大量使用LET来帮助将查询分解为更小的步骤,并在将来的查询中使用输出。
也可以将其全部折叠到一个查询中,但此技术有助于将其分解。
这将返回: