我正在使用一个包含约 100 万个文档的 Cosmos 容器。所有文档都有唯一的 ID。每个文档中还有另一个属性应该是唯一的。但是,有数量未知的文档包含此属性的重复项。以下是文档结构的示例:
{
"id":"unique-id",
"property":"value-that-is-supposed-to-be-unique"
}
我正在尝试获取“属性”不唯一的所有文档,但很难提出查询来执行此操作。我能想到的最好的办法如下:
按 c.property 从 c 组中选择 c.property、count(1)
它返回所有“属性”值以及每个值的计数,但这在很大程度上是不够的。我正在寻找获取包含重复“属性”值的文档的所有 id 的最佳方法。
最佳答案
您可以使用以下查询来查找重复项。
select d.property,d.tot_count from
(SELECT c.property,count(1) as tot_count FROM c
group by c.property) as d
where d.tot_count>1
我用示例数据重现了这个。
输入
[
{
"id": "1",
"property": "p1"
},
{
"id": "2",
"property": "p1"
},
{
"id": "3",
"property": "p2"
}
]
输出
[
{
"property": "p1",
"tot_count": 2
}
]
关于azure - 根据属性值在cosmos db中查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75674355/