MongoTemplate | 多条件查询
将所有的查询条件添加到一个 List 中,然后将其转换为一个数组,并将数组传递给 Criteria.orOperator 方法。这样,所有的查询条件将被组合成一个或条件。
·
MongoTemplate查询
@Resource
private MongoTemplate mongoTemplate;
public <T> List<T> getDataList(String param1, Long param2, Class<T> clazz) {
// 构建query
Query 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;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)