按日期汇总

时间:2018-12-18 21:49:08

标签: java mongodb morphia

我正在尝试按时间汇总统计数据。

我有一个对象,其中有device_name(PC,Mobile ..),时间和流量。

public class TrafficRecord extends MongoMorphiaModel {

   public ObjectId id;
   public String device_name;

   public Date time_record;   
   public Long traffic; 

}

我无法弄清楚如何在代码中编写它,并且无法按“天”或“小时”进行汇总,当然,有一些教程,但不适用于Morphia。

所以预期结果是这样的:

public static class QueryResultStats {

    public String device_name
    public List<Record> avarage_per_something;

}

public static class Record {

    public Long consumption_total;
    public Date start; // Time

}

我在Morphia Java中的查询

 Iterator<QueryResultStats> aggregate = ModelMongo_ThingsMobile_CRD.find
                .createAggregation()
                .group(
                       "device_name",
                        Group.grouping(
                                "avarage_per_hour",

                                Group.grouping(
                                        "consumption_total",
                                        Group.sum( "time_record")

                                )
                        )

                )
                .out(
                        QueryResultStats.class,
                        AggregationOptions
                                .builder()
                                .allowDiskUse(false)
                                .maxTime( 5000 , TimeUnit.SECONDS)
                                .build()
                );

0 个答案:

没有答案