``
mongoTemplate实现多个or查询条件封装
//内容更新 2022/05/06 or查询 (此记录仅供作者参考)
String[] laneNumOutArray = lane_num_out.split(",");
//此查询对象放 or查询条件的列表
Criteria craLaneNumOut = new Criteria();
//or查询条件列表
List<Criteria> craLanNumOutList = new ArrayList<>();
for (String lanNumOut : laneNumOutArray) {
if(StringUtils.isEmpty(lanNumOut)){
continue;
}
//多值匹配 ;num; ;num ^num; num 匹配四种情况
String pattern = buildMultiPatternRegularStr(lanNumOut, ",");
//添加当前查询条件
craLanNumOutList.add(Criteria.where("lane_num_out").regex(pattern));
}
if(!CollectionUtils.isEmpty(craLanNumOutList)){
//封装or查询列表
craLaneNumOut.orOperator(craLanNumOutList.toArray(new Criteria[craLanNumOutList.size()]));
//将or查询列表封装到总查询对象中
query.addCriteria(craLaneNumOut);
}