一、问题描述:
mongodb 复杂的查询场景:参数为集合对象,那我们该如何去查呢? for循环 no
二、代码示例:
public List<TemperatureMonitorRspDto> queryTemperatureInfoList(List<TemperatureReqDto> reqDtoList) throws Exception {
// 构造参数 将入参集合转换成 Criteria数组
Criteria[] cri =new Criteria[reqDtoList.size()];
for (int i=0;i<reqDtoList.size();i++) {
TemperatureReqDto temperatureReqDto = reqDtoList.get(i);
cri[i] = Criteria.where("dispatchId")
.is(temperatureReqDto.getDispatchId()).and("gnssTime").gt(temperatureReqDto.getOperateTime().getTime());
}
Criteria criteria=new Criteria();
criteria.orOperator(cri);
Query query=new Query(criteria);
List<TemperatureMonitorPo> temperatureMonitorPoList =mongoTemplate.find(query,TemperatureMonitorPo.class);
return Po2DtoConvert.po2TemperatureMonitorRspDtoList(temperatureMonitorPoList);
}