You need to enable JavaScript to run this app. Azure CosmosDB MongoDB模式Error=2 BadRequest正则报错解决
优惠活动
大模型
产品
解决方案
定价
更多

Azure CosmosDB MongoDB模式Error=2 BadRequest正则报错解决

根因说明

报错核心提示已明确:Azure CosmosDB MongoDB兼容层仅支持标准JS正则的4个有效flag:i、g、m、u,不支持x扩展flag。
当前查询中$options配置为'ix',多传入的x是触发400 BadRequest的直接原因。原生MongoDB支持x flag(用于忽略正则中的空白字符、行内注释),但CosmosDB未实现该扩展能力,因此仅在连接CosmosDB实例时触发报错,本地原生MongoDB环境可正常运行。

修复方案

直接移除$options中的x标识,将配置改为'i'即可。
修改后可正常运行的查询代码:

const foundUsers = await User.find({
  $and: [
    { isCreator: true },
    {
      $or: [
        { username: { $regex: text, $options: 'i' } },
        { firstName: { $regex: text, $options: 'i' } },
        { lastName: { $regex: text, $options: 'i' } },
      ],
    },
  ],
}).populate('createdStories');
注意事项
  • 如果之前依赖x flag的特性(给正则加注释、自动忽略正则中的空白字符),需要提前将正则表达式中的冗余空白、注释手动清理后再传入$regex参数,不能依赖x flag实现该能力。
  • 不要在$options中添加CosmosDB不支持的其他非标准正则flag,避免再次触发同类报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 16:15:06