You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Azure Cosmos DB中根据属性值查找重复文档ID

获取Cosmos DB中重复property的所有文档ID

针对你100万文档的场景,以下是两种高效的查询方案,直接满足你获取重复property对应文档ID的需求:

方案1:返回所有重复文档的ID和对应property

这个查询先筛选出所有出现次数>1的property值,再匹配所有包含这些值的文档,返回具体的ID:

SELECT c.id, c.property
FROM c
WHERE c.property IN (
    SELECT VALUE dupProp.property
    FROM dupProp
    GROUP BY dupProp.property
    HAVING COUNT(1) > 1
)

方案2:按重复property分组展示所有ID

如果需要直观看到每个重复property对应的所有ID集合,可以用ARRAY_AGG聚合函数,一次性拿到分组后的结果:

SELECT 
    dupProp.property,
    ARRAY_AGG(dupProp.id) AS duplicate_ids,
    COUNT(1) AS occurrence_count
FROM dupProp
GROUP BY dupProp.property
HAVING COUNT(1) > 1

性能优化提示

  • 确保property字段的范围索引处于启用状态(Cosmos DB默认对所有字段开启范围索引,若为自定义索引需确认包含该字段),否则GROUP BY和IN查询会触发全表扫描,性能骤降
  • 若容器有分区键,尽量在查询中加入分区键过滤条件,缩小扫描范围
  • 数据量过大时可设置maxItemCount参数分页获取结果,避免查询超时

内容的提问来源于stack exchange,提问作者ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:22:10