模糊查询:就是sql的select * from table where xx like yy的样式的sql语句。
db.user.find({"name":/ab/})
这样,可以查出所有包含有"ab"字符串的数据了。
db.user.find({"name":/ab/})
这样,可以查出所有包含有"ab"字符串的数据了。
等同于select * from user where name like "ab"
使用RockMongo客户端工具进行模糊查询
1
|
{
"content"
:
"$regex"
:
"123456"
}
|
其他情况模糊查询
查询包含XXX
1
|
{
name
:/xxx/}
|
查询以XXX开头
1
|
{
name
:/^xxx/}
|
查询以XXX结尾
1
|
{
name
:/xxx^/}
|
查询忽略大小写
1
|
{
name
:/xxx/i}
|
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>
|