wjbk

导航

mongoTemplate多条件查询(没有比这条件更多的了)

QueryBuilder queryBuilder = new QueryBuilder();
//范围查询
queryBuilder.and("指定字段").in("List集合");

//精准查询
queryBuilder.and(""指定字段"").is("值");

//模糊查询
Pattern pattern = Pattern.compile("^.*" + "模糊值" + ".*$", Pattern.CASE_INSENSITIVE);
queryBuilder.and("指定字段").regex(pattern);

//or模糊查询(例:姓名或者账号包含”zhangsan“)
Pattern pattern = Pattern.compile("^.*" + ”zhangsan“+ ".*$", Pattern.CASE_INSENSITIVE);
            BasicDBList basicDBList = new BasicDBList();
            basicDBList.add(new BasicDBObject("name",pattern));
            basicDBList.add(new BasicDBObject("account",pattern));
            DBObject obj =new BasicDBObject();
            obj.put("$or", basicDBList);
            queryBuilder.or(obj);

//不等于查询
queryBuilder.and("指定字段").notEquals("值");
Query query = new BasicQuery(queryBuilder.get().toString());
mongoTemplate.find(query.with(Sort.by(Sort.Order.desc("排序字段"))), 实体类.class);

 

posted on 2022-06-29 17:38  wjbk  阅读(775)  评论(0)    收藏  举报