我正在尝试按时间汇总统计数据。
我有一个对象,其中有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()
);