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

如何在CosmosDB中针对二级JSON属性编写WHERE查询条件?

CosmosDB 查询数组内元素的正确写法

你的查询没结果的原因很直接:Fields是数组类型,直接用c["Fields"]["FieldValue"]根本访问不到数组里的元素属性——这相当于在问整个数组对象有没有FieldValue这个属性,显然没有,所以匹配不到。

给你两种可行的写法:

1. 精确匹配用 ARRAY_CONTAINS

如果只是要匹配FieldValue等于Others的记录,用这个函数效率更高:

SELECT * FROM c
WHERE ARRAY_CONTAINS(c.Fields, {"FieldValue": "Others"}, true)

第三个参数true表示部分匹配,不用要求数组元素和第二个参数的对象完全一致,只比对指定的FieldValue字段即可。

2. 复杂条件用 ANY 遍历数组

如果需要模糊匹配(比如用LIKE),或者有多个条件要判断,就用ANY遍历数组里的每个元素:

SELECT * FROM c
WHERE ANY f IN c.Fields WHERE f.FieldValue LIKE '%Others%'

要是精确匹配,把LIKE '%Others%'换成= 'Others'就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:14:54