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

Spring Mongo @Query查询不忽略大小写,如何实现大小写不敏感匹配?

Spring Data MongoDB 大小写不敏感查询修改方案

你现有的代码里正则表达式没有配置忽略大小写的标识,所以查询默认是大小写敏感的,可按以下两种方案调整:

方案1:修改现有@Query注解配置

在MongoDB查询中添加$options参数指定i(忽略大小写)标识即可,修改后的代码如下:

// 注意:调用该方法前请先将text参数包装为".*" + 搜索关键词 + ".*"的格式实现全模糊匹配
@Query("{'occasionId':?0,'text':{$regex:?1, $options:'i'}}")
Page<FreeMessageCard> findByOccasionIdAndTextIgnoreCase(String occasionId, String text, Pageable pageable);

方案2:使用Spring Data衍生查询(无需手写@Query)

Spring Data MongoDB支持通过方法名自动生成查询规则,直接按规则定义方法名即可自动实现大小写不敏感的模糊查询:

Page<FreeMessageCard> findByOccasionIdAndTextContainingIgnoreCase(String occasionId, String text, Pageable pageable);

该写法框架会自动解析为:匹配指定occasionId、text字段包含搜索关键词且忽略大小写的查询规则,无需手动处理正则拼接。

注意事项

  • 数据量较大的场景下,大小写不敏感的正则查询性能较低,建议给text字段建立对应索引优化查询效率。
  • 如果需要精准匹配前缀/后缀,可自行调整正则规则,仅保留需要的通配符位置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:39:02