SpringBoot+Mongodb多条件模糊查询(超详细,有效)
不想扣字了,直接上代码:
public Msg<Page<WindowsSysLog>> windowsSysLogQuery(@RequestParam(value = "page",required = false) Integer page,@RequestParam(value = "pageNum",required = false) Integer pageNum,@RequestParam(value = "clientId",required = false) String clientId, @RequestParam(value = "syslogLevel",required = false) String syslogLevel,@RequestParam(value = "startDate",required = false) Long startDate,@RequestParam(value = "endDate",required = false) Long endDate,@RequestParam(value = "msg",required = false) String msg) {
Msg msg1 = Msg.ok();
Criteria c1=null;
Criteria c2=null;
Criteria c3=null;
ArrayList<Criteria> list1=new ArrayList<Criteria>();
if (clientId != null){
c1 = Criteria.where("clientId").regex(".*?" + clientId + ".*?");
list1.add(c1);
}
if (syslogLevel != null){
c2 = Criteria.where("syslogLevel").regex(".*?" +syslogLevel + ".*?");
list1.add(c2);
}
if (msg != null){
c3 = Criteria.where("msg").regex(".*?" + msg + ".*?");
list1.add(c3);
}
Criteria[] arr=new Criteria[list1.size()];
list1.toArray(arr);
Criteria criteria=new Criteria().andOperator(arr);
Query query=new Query(criteria);
if (startDate !=null && endDate !=null){
query.addCriteria(Criteria.where("createDate").gte(startDate).lte(endDate));
}
if (list1.size()==0){
query=new Query();
}
分页懒得发了,网上有,可以私聊
