Агрегирование по дате - PullRequest
       12

Агрегирование по дате

0 голосов
/ 19 декабря 2018

Я пытаюсь составить статистику по времени.

У меня есть объект, где у меня есть имя_устройства (ПК, мобильный телефон), время и трафик.

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()
                );
...