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

如何在Cosmos DB中查询传入数组中无对应文档的ID?

Cosmos DB 查询传入ID数组中不存在的文档ID

要实现从传入的ID数组里筛选出容器中无对应文档的ID,可以使用以下SQL语句:

SELECT VALUE t
FROM @TestIds t
WHERE NOT EXISTS (
    SELECT 1 FROM c WHERE c.id = t
)

关键说明

  • 参数处理:通过FROM @TestIds t将传入的数组参数拆分为单个ID元素t,这是Cosmos DB合法处理数组参数的方式,解决了直接从数组查询的语法错误问题。
  • 高效校验:NOT EXISTS子句会针对每个t检查容器中是否存在匹配ID的文档,一旦确认无匹配就返回该ID,性能优于NOT IN子句(尤其是文档量较大时),因为它找到匹配后会立即停止校验。

示例验证

假设传入参数 @TestIds = ['id1', 'id2', 'id3'],容器中仅存在id2对应的文档,执行上述语句后返回结果为:

["id1", "id3"]

额外优化

如果你的容器设置了分区键,建议在NOT EXISTS的子查询中加上分区键过滤条件,能进一步提升查询性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 17:32:37