1.查询名字不包含“张”的数据(不包含)
Pattern compile = Pattern.compile("^((?!" + "张"+ ").)*$",Pattern.CASE_INSENSITIVE);
Query query=new Query(Criteria.where("name").is(compile));
// 或者 Query query=new Query(Criteria.where("name").regex(compile));
mongoTemplate.find(query, Student.class)
2.查询名字包含“张”的数据(包含)
Pattern compile=Pattern.compile("^.*" + "张" + ".*$",Pattern.CASE_INSENSITIVE);
Query Query query=new Query(Criteria.where("name").is(compile));
// 或者 Query query=new Query(Criteria.where("name").regex(compile));
mongoTemplate.find(query, Student.class)
3.查询名字为张三的数据(完全匹配)
Pattern compile = Pattern.compile("^" + "张三" + "$",Pattern.CASE_INSENSITIVE);
Query query=new Query(Criteria.where("name").is(compile));
// 或者 Query query=new Query(Criteria.where("name").regex(compile));
mongoTemplate.find(query, Student.class)
4.查询名字左边为张的数据(左匹配)
Pattern compile = Pattern.compile("^" + "张" + ".*$");
Query query=new Query(Criteria.where("name").is(compile));
// 或者 Query query=new Query(Criteria.where("name").regex(compile));
mongoTemplate.find(query, Student.class)
5.查询名字最右边是“三”的数据(右匹配)
Pattern compile= Pattern.compile("^.*" + "三" + "$");
Query query=new Query(Criteria.where("name").is(compile));
// 或者 Query query=new Query(Criteria.where("name").regex(compile));
mongoTemplate.find(query, Student.class);
6.查询名字中包含"张",且地址中包含“江西”的数据
Pattern compile1= Pattern.compile("^.*" + "张" + ".*$",Pattern.CASE_INSENSITIVE);
Pattern compile2= Pattern.compile("^.*" + "江西" + ".*$",Pattern.CASE_INSENSITIVE);
Criteria criteria =new Criteria();
criteria.andOperator(Criteria.where("name").is(compile1),Criteria.where("address").is(compile2));
Query query =new Query();
query.addCriteria(criteria);
mongoTemplate.find(query, Student.class);
7.查询名字中包含"张",或地址中包含“江西”的数据
Pattern compile1= Pattern.compile("^.*" + "张" + ".*$",Pattern.CASE_INSENSITIVE);
Pattern compile2= Pattern.compile("^.*" + "江西" + ".*$",Pattern.CASE_INSENSITIVE);
Criteria criteria =new Criteria();
criteria.orOperator(Criteria.where("name").is(compile1),Criteria.where("address").is(compile2));
Query query =new Query();
query.addCriteria(criteria);
mongoTemplate.find(query, Student.class);
MongoDB精确与模糊查询技巧
5954

被折叠的 条评论
为什么被折叠?



