/** * * 功能描述: * * @author :xiaoyu 创建日期 :2014年2月19日 下午2:23:44 * * @param vehicleIds * @param alarmTypeCode * @return * * 修改历史 :(修改人,修改时间,修改原因/内容) */ @Override public Map findAlarmInfo(ListvehicleId, List alarmTypeCode) { BasicDBList vehicleIds = new BasicDBList(); BasicDBList alarmTypeCodes = new BasicDBList(); for (int i = 0; i < vehicleId.size(); i++) { vehicleIds.add(vehicleId.get(i)); } for (int i = 0; i < alarmTypeCode.size(); i++) { alarmTypeCodes.add(alarmTypeCode.get(i)); } BasicDBObject queryObject = new BasicDBObject(); queryObject.put("vehicleId", new BasicDBObject("$in", vehicleIds)); queryObject.put("alarmTypeCode", new BasicDBObject("$in", alarmTypeCodes)); String reduce = "function(doc, aggr){" + "aggr.count += 1;" + " }"; DBObject result = mongoTemplate.getCollection("alarmDetail").group(new BasicDBObject("alarmTypeCode", 1), queryObject, new BasicDBObject("count", 0), reduce);//对mongo数据库进行分组统计查询 Map map = result.toMap(); 一般会对返回的Map进行处理 具体的业务代码不贴出来 }
/** * 这里利用Spring提供的操作mongo的模板类 */ @Resource private MongoTemplate mongoTemplate;
/** * * 功能描述: * * @author :xiaoyu 创建日期 :2014年2月19日 下午2:23:44 * * @param vehicleId * @return * * 修改历史 :(修改人,修改时间,修改原因/内容) */ public MapfindOnlineVehicles(List vehicleId) { BasicDBList vehicleIds = new BasicDBList(); for (int i = 0; i < vehicleId.size(); i++) { vehicleIds.add(vehicleId.get(i)); } BasicDBObject queryObject = new BasicDBObject(); queryObject.put("vehicleId", new BasicDBObject("$in", vehicleIds)); queryObject.put("vehicleStatus", new BasicDBObject("$in", new Object[] { "XXX", "XXX", "XXX", "XXX" })); Query query = new BasicQuery(queryObject); long onlineVehicles = this.mongoTemplate.count(query, "realTimeDataInfo");//统计查询count查询 Map onlineVehicle = new HashMap<>(); onlineVehicle.put("onlineVehicles", onlineVehicles); return onlineVehicle; }