2017-08-10 9 views
0

私はモンゴモフィアを使用しています。以下の関数でgroup by節を追加する方法。このクエリでグループ化を使用する方法

public ArrayList<DeliveryServiceVisitorUserTraceEntity> listExpectedDeliveries(String associationId) { 

     // HashMap<String, String> filterExpressions = new HashMap<String, String>(); 

     Query<DeliveryServiceVisitorUserTraceEntity> query = DBManager.getInstance().createQuery(
       DeliveryServiceVisitorUserTraceEntity.class); 

     List<Integer> values = new ArrayList<Integer>(); 
     values.add(1); 
     values.add(2); 

     query.and(query.criteria("associationId").equal(associationId), 
       query.criteria("deliveryServicestatus").in(values), 
       query.criteria("allowTimeIn").greaterThan(getStartOfDay(new Date()) + ""), query 
         .criteria("allowTimeIn").lessThan(getEndOfDay(new Date()) + "") 
         ); 
     List<DeliveryServiceVisitorUserTraceEntity> residents = query.asList(); 
     return new ArrayList<DeliveryServiceVisitorUserTraceEntity>(residents); 
    } 

答えて

0

あなたがグループ化を達成するための集約フレームワークを使用する必要があります。 私はmorphia 1.1.0を使用して、集約のために私はGroupObjはあなたが集計結果のスキーマと一致することになる作成する必要が新しいクラスであるここでは、この

AggregationPipeline pipeline = DAO.getDatastore() 
 
     .createAggregation(DeliveryServiceVisitorUserTraceEntity.class) 
 
     .match(query) //Your createQuery object 
 
     .group("groupByField"); //group by field 
 
     
 
Iterator<GroupObj> iterator = pipeline.aggregate(GroupObj.class);

ような何かをするだろう

関連する問題