Spring mongoDB map减少了键字符串

时间:2014-03-21 08:46:53

标签: java spring mongodb mapreduce

我正在做mongo中的map reduce:

List<Measurement> lista = new ArrayList<Measurement>();
    String map = "function Map() {emit(this.emissionType,this.avgValue); }";
    String reduce = "function Reduce (key, values) { var size = values.length; var result = (Array.sum(values))/size; return result;    }";
    Query query = new Query();
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.HOUR, -24);
    Date date = cal.getTime();

    query.addCriteria(Criteria.where("sensor.$id").is(sensorId).andOperator(Criteria.where("date").gt(date)));

    MapReduceResults<Measurement> result = null;
    try{    
          result = template.mapReduce(query,"measurements", map, reduce, Measurement.class);
        }catch(Exception excep){
                excep.printStackTrace();
        }

    Iterator itr = result.iterator();
    while (itr.hasNext()) {
        Object element = itr.next();
        lista.add((Measurement) element);
    }

我想要做的是按发射类型进行分组,并获得每个平均值。

使用reduce功能,我假装得到所有平均值的总平均值。

最后我想得到的所有结果必须是过去24小时。

问题来自于我执行它并且它不会返回任何内容

0 个答案:

没有答案