假设我想在spring-data-mongodb中搜索多个字段,如何使查询动态化。 我需要做的是首先检查字段值是否为空,然后在where子句中使用它。
实施例,
Query query=new Query();
if(isNotEmpty(searchDto.getA())){
query.addCriteria(new Criteria().and("a").is(searchDto.getA()));
}
if(isNotEmpty(searchDto.getB())){
query.addCriteria(new Criteria().and("b").is(searchDto.getB()));
}
if(isNotEmpty(searchDto.getC())){
query.addCriteria(new Criteria().and("c").is(ssearchDto.getC()));
}
if(isNotEmpty(searchDto.getD())){
query.addCriteria(new Criteria().and("d").is(searchDto.getD()));
}
query.with(new Sort(Sort.Direction.ASC, "a"));
return mongoTemplate.find(query, ResultDto.class, "MY_COLLECTION");
这些不是获取数据,结果列表的大小始终为0。
有没有其他方法可以做到这一点。