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

如何在MongoDB的find()查询中对字段值做小写转换实现不区分大小写检索

MongoDB不区分大小写模糊匹配解决方案

现有两种常用实现方式可以满足需求:

  • 方案一:使用$regex自带的不区分大小写参数
    这是成本最低的实现方式,直接给正则查询添加$options: 'i'配置即可,查询时会自动忽略大小写差异,不需要额外转换字段或搜索值的大小写。
    示例代码如下:
data = await CatalogModel.find({
  name: {
    $regex: searcher.toString(),
    $options: 'i'
  }
})
  • 方案二:聚合管道先转字段为小写再匹配
    如果明确需要先将数据库存储的name字段统一转为小写后再做匹配,可以使用聚合查询配合$toLower操作符实现:
data = await CatalogModel.aggregate([
  // 新增临时字段存储全小写的name值
  {
    $addFields: {
      nameLower: { $toLower: "$name" }
    }
  },
  // 用转小写后的搜索词匹配临时字段
  {
    $match: {
      nameLower: { $regex: searcher.toString().toLowerCase() }
    }
  }
])

提示:如果数据量较大,建议为name字段建立支持不区分大小写的文本索引,可大幅提升上述查询的执行效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:15:08