普通网友 2022-11-15 16:36 采纳率: 55.6%
浏览 33
已结题

mongoTemplate模糊查询,查不到数据

问题:java使用mongoTemplate正则表达式,无法模糊查询。

例子:关键词【多少钱】,输入【多少】是没法匹配的。输入完整的【多少钱】可正常返回

服务端代码

public QA findAByKeyWord(String keyWord) {
Pattern pattern = Pattern.compile("^.*" + keyWord + ".*$",Pattern.CASE_INSENSITIVE);
        if (!StringUtils.isEmpty(keyWord)){
            Criteria criteria = Criteria.where("keyword").regex(pattern);
            Query query = new Query(criteria).with(Sort.by(Sort.Direction.DESC,"sort"));
            query.fields().include("answer");
            query.fields().exclude("_id");
            return mongoTemplate.findOne(query, QA.class, "qa");
        }else {
            return null;
        }}

把正则修改为下面的也不行

 Pattern pattern = Pattern.compile(".*?" + keyWord+ ".*");

mongodb数据库

img

  • 写回答

1条回答 默认 最新

  • 三只小菜猿 新星创作者: PHP技术领域 2022-11-15 17:08
    关注

    regex 你把这个查询换一下,应该是这个影响到了

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月22日
  • 创建了问题 11月15日