Cosmos SQL API如何基于数组内fileId等多条件查询条目是否存在
Cosmos SQL API 查询语句实现方案
你可以直接使用 Cosmos DB 内置的 ARRAY_CONTAINS 函数判断目标 fileId 是否在 fileIds 数组中,再叠加另外两个过滤条件即可实现需求:
1. 基础查询(返回所有匹配的条目)
SELECT * FROM c WHERE c.applicationId = @applicationId AND c.eventType = @eventType AND ARRAY_CONTAINS(c.fileIds, @targetFileId)
参数说明:
@applicationId替换为你需要匹配的应用ID,比如示例中的266c6ca3-e77c-4233-b780-b8dd69aa7349@eventType替换为你需要匹配的事件类型数值,比如示例中的8@targetFileId替换为你需要校验是否存在的目标fileId值
2. 仅判断是否存在(性能最优)
如果不需要返回匹配条目详情,只需要判断是否有符合条件的记录,推荐使用以下写法,不需要加载全量文档,查询效率更高:
SELECT VALUE EXISTS( SELECT * FROM c WHERE c.applicationId = @applicationId AND c.eventType = @eventType AND ARRAY_CONTAINS(c.fileIds, @targetFileId) )
该语句会直接返回 true 或 false,直接对应是否存在符合条件的条目。
内容的提问来源于stack exchange,提问作者Angela
相关产品推荐
相关产品推荐

