这是代码区域
public List selecVillageBuildingIntercom(Map maps) {
List> arrayList=propertyMapper.selecVillageBuildingIntercom(maps);
Criteria criatira = new Criteria();
for (int i = 0; i < arrayList.size(); i++) {
if(i==0){
criatira.andOperator(Criteria.where("gatewayId").is(arrayList.get(i).get("gateway_id")).and("deviceId").is(arrayList.get(i).get("device_id")));
}
if(i>0){
criatira.orOperator(Criteria.where("gatewayId").is(arrayList.get(i).get("gateway_id")));
criatira.orOperator(Criteria.where("deviceId").is(arrayList.get(i).get("device_id")));
}
}
Query query = new Query(criatira);
query.with(new Sort(Direction.DESC, "createdTime"));
long totalCount = this.mongoTemplate.count(query, HomeDeviceLog.class);
Pagination<HomeDeviceLog> page = new Pagination<HomeDeviceLog>(Integer.parseInt(maps.get("pageNum").toString()), Integer.parseInt(maps.get("pageSize").toString()), totalCount);
query.skip(page.getFirstResult());// skip相当于从那条记录开始
query.limit(Integer.parseInt(maps.get("pageSize").toString()));// 从skip开始,取多少条记录
List<HomeDeviceLog> datas = mongoTemplate.find(query, HomeDeviceLog.class);
for (int i = 0; i < arrayList.size(); i++) {
for (int j = 0; j < datas.size(); j++) {
if(arrayList.get(i).get("gatewayId").equals(datas.get(j).getGatewayId())&&arrayList.get(i).get("device_id").equals(datas.get(j).getDeviceId())){
datas.get(j).setAliases_name(arrayList.get(i).get("aliases_name").toString());
datas.get(j).setHomeName(arrayList.get(i).get("home_name").toString());
}
}
}
return datas;
}
错误异常
Due to limitations of the com.mongodb.BasicDBObject, you can't add a second '$or' expression specified as '$or : [ { "deviceId" : 3212929}]'. Criteria already contains '$or : [ { "gatewayId" : 327952}]'.