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

如何使用数组字段过滤获取Cosmos DB完整文档?

Cosmos DB 查询数组过滤后返回完整文档的解决方案

你的问题出在查询的SELECT语句部分——你同时指定了返回完整文档c和匹配的数组元素t,所以结果会同时包含这两部分内容。要只获取完整文档,有两种常用方案:

方案1:使用EXISTS子查询(推荐)

这种方式直接检查文档的数组中是否存在符合条件的元素,无需JOIN,性能更优,且不会重复返回文档:

SELECT c
FROM c
WHERE EXISTS(
    SELECT VALUE t
    FROM t IN c.identifiers
    WHERE t.identifierLabel = "someLabel2"
)

方案2:JOIN后仅返回文档并去重

如果坚持使用JOIN,只需修改SELECT语句只返回c,同时用DISTINCT避免因数组中多个匹配元素导致的重复文档:

SELECT DISTINCT c
FROM c
JOIN t IN c.identifiers
WHERE t.identifierLabel = "someLabel2"

效果说明

两种方案都会返回符合条件的完整原始文档,不会额外追加匹配的数组元素,示例返回结果如下:

{
  "name": {
      "productName": "someProductName"
  },
  "identifiers": [
     {
         "identifierCode": "1234",
         "identifierLabel": "someLabel1"
     },
     {
         "identifierCode": "432",
         "identifierLabel": "someLabel2"
     }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:51:03