已解决
MongoTemplate | 多条件查询
来自网友在路上 167867提问 提问时间:2023-10-09 09:01:23阅读次数: 67
最佳答案 问答题库678位专家为你答疑解惑
MongoTemplate查询
@Resource
private MongoTemplate mongoTemplate;public <T> List<T> getDataList(String param1, Long param2, Class<T> clazz) {// 构建queryQuery query = constructQuery(param1, param2);// 查询return mongoTemplate.find(query, clazz);
}
关系且
构建 Query
private Query constructQuery(String param1, String param2, String param3) {Query query = new Query();if(!Strings.isBlank(param1)){query.addCriteria(Criteria.where("field1").is(param1));}if(!Strings.isBlank(param2)){query.addCriteria(Criteria.where("field2").is(param2));}if(!Strings.isBlank(param3)){query.addCriteria(Criteria.where("field3").is(param3));}return query;
}
关系或
构建 Query
将所有的查询条件添加到一个 List 中,然后将其转换为一个数组,并将数组传递给 Criteria.orOperator 方法。这样,所有的查询条件将被组合成一个或条件
private Query constructQuery(String param1, String param2, String param3) {List<Criteria> criteriaList = new ArrayList<>();if(!Strings.isBlank(param1)){criteriaList.add(Criteria.where("field1").is(param1));}if(!Strings.isBlank(param2)){criteriaList.add(Criteria.where("field2").is(param2));}if(!Strings.isBlank(param3)){criteriaList.add(Criteria.where("field3").is(param3));}Criteria[] criteriaArray = new Criteria[criteriaList.size()];criteriaList.toArray(criteriaArray);Criteria orCriteria = new Criteria().orOperator(criteriaArray);Query query = new Query(orCriteria);return query;}
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"MongoTemplate | 多条件查询":http://eshow365.cn/6-17709-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!