azure - 根据属性值在cosmos db中查找重复项

标签 azure azure-cosmosdb azure-cosmosdb-sqlapi

我正在使用一个包含约 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
    }
]

enter image description here

关于azure - 根据属性值在cosmos db中查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75674355/

相关文章:

azure - 带有非字母数字字段名称的cosmos db sql查询

azure - 如何使用 MobileServiceClient(Xamarin 移动应用程序)和使用 SSL 作为后端服务的 Azure 应用服务实现 SSL 固定?

azure - 检查 Azure 自动化 Runbook (PowerShell) 运行位置的方法是什么?

azure-cosmosdb - Azure Cosmos DB Graph 通配符搜索

azure - 为什么在 Cosmos SQL API 查询的 WHERE 子句中包含分区键会增加某些查询消耗的 RU?

Azure Synapse - 有没有办法从 ODBC 源批量导入数据?

c# - Azure MongoDB API 批量插入

azure - 更新 Azure CosmosDB 分区键和分区键值

azure - 就像 Azure COSMOS SDK 中的 Upsert 操作一样,我们是否有 PATCH + INSERT 操作

.net - 使用 .NET SDK v.4 从 CosmosDB 数据库获取动态对象列表