模糊查询:就是sql的select * from table where xx like yy的样式的sql语句。 db.user.find({"name":/ab/}) 这样,可以查出所有包含有"ab"字符串的数据了。
等同于select * from user where name like "ab"
使用RockMongo客户端工具进行模糊查询
1
{
"content"
:
"$regex"
:
"123456"
}
其他情况模糊查询
查询包含XXX
查询以XXX开头
查询以XXX结尾
查询忽略大小写
Spring中不区分大小写的模糊查询
1
2
3
4
5
6
7
8
9
10
11
//完全匹配
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;</simpleuserinfo>