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

Mongo API下查询字符串属性长度匹配对象,Cosmos不支持$expr、$where如何实现

Azure Cosmos DB按字符串属性长度过滤错误对象的实现方案

Cosmos DB原生支持字符串长度计算的内置函数,无需使用$expr、$where,也不需要全量遍历所有对象即可实现筛选。

核心查询写法

调用内置LENGTH()函数直接在WHERE子句中做长度判断,示例如下:

-- 筛选targetStr属性长度不等于指定值的异常对象
SELECT * FROM c
WHERE LENGTH(c.targetStr) != 10

避免全量遍历的索引配置

只要配置了正确的索引策略,上述查询会直接走索引检索,不会触发全表扫描:

  • 默认索引策略下,所有字符串属性默认开启范围索引,查询无需额外配置即可走索引
  • 自定义索引策略时,需要给目标字符串属性配置范围索引,示例配置如下:
{
  "indexingMode": "consistent",
  "includedPaths": [
    {
      "path": "/targetStr/?",
      "indexes": [
        {
          "kind": "Range",
          "dataType": "String",
          "precision": -1
        }
      ]
    }
  ]
}

常见异常场景的查询示例

  • 排查属性长度超出上限的错误:WHERE LENGTH(c.orderNo) > 32
  • 排查属性长度低于下限的错误:WHERE LENGTH(c.mobile) < 11
  • 排查空字符串赋值错误:WHERE LENGTH(c.address) = 0

内容的提问来源于stack exchange,提问作者juliano.net

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 22:09:02