引子
今天刚刚用到了模糊查询,所以这里就讲一讲,monggdb的模糊查询,包括大小写。
查询包含xxx
类似sql的like %xxx%
{name:/xxx/}
spring 中的代码(区分大小写)
public List<SimpleUserInfo> searchFriends(String fieldName, String keyword) {
Query query = Query.query(Criteria.where(fieldName).regex(keyword));
List<SimpleUserInfo> users = mongoTemplate.find(query, SimpleUserInfo.class, classname);
return users;
}
查询以xxx开头
类似sql的like %xxx
{name:/^xxx/}
查询以xxx结尾
类似sql的like %xxx
{name:/xxx^/}
查询忽略大小写
类似sql的like %xxx
{name:/xxx/i}
以上几种查询可以混合在一起使用。
spring中不区分大小写的模糊查询
springmvc不区分大小写的模糊查询如下
//完全匹配
Pattern pattern = Pattern.compile("^王$", Pattern.CASE_INSENSITIVE);
//右匹配
Pattern pattern = Pattern.compile("^.*王$", Pattern.CASE_INSENSITIVE);
//左匹配
Pattern pattern = Pattern.compile("^王.*$", Pattern.CASE_INSENSITIVE);
//模糊匹配
Pattern pattern = Pattern.compile("^.*王.*$", Pattern.CASE_INSENSITIVE);
Query query = Query.query(Criteria.where(fieldName).regex(pattern));
List<SimpleUserInfo> users = mongoTemplate.find(query, SimpleUserInfo.class, classname);
return users;