2017-06-02 1 views
0
私は春データMongoの集計から、次のクエリを取得しようとしています

どのように春のMongoDB集約に単一のサブIDフィールドを書き込む

{ 
    "_id": { 
    "year": "$_id.year" 
    }, 
    "result": { 
    "$push": { 
     "rs": "$_id.rs", 
     "vl": "$vl" 
    } 
    } 
} 

を、私は、次の試みた:

GroupAggregation as = group("_id.year").push(new BasicDBObject("rs", "$_id.rs").append("vl", "$vl")).as("result"); 

しかし、それはこの表現を生成し、 「_id」フィールドにサブフィールド「年」がない場合:

{ "$group" : { "_id" : "$_id.year" , "result" : { "$push" : { "rs" : "$_id.rs" , "vl" : "$vl"}}}} 

qを取得する方法に関するアイデア春データのmongodb集約を使用して?

答えて

0

以前の_id値にアクセスするためのAPIにフックが表示されません。

AggregationOperationを使用すると、mongodbタイプを使用して$groupステージを作成できます。あなたが言ったように

AggregationOperation group = new AggregationOperation() { 
     @Override 
     public DBObject toDBObject(AggregationOperationContext aggregationOperationContext) { 
      return new BasicDBObject("$group", new BasicDBObject("_id", new BasicDBObject("year", "$_id.year")).append("result", new BasicDBObject("$push", new BasicDBObject("rs", "$_id.rs").append("vl", "$vl")))); 
    } 
}; 
+0

よう

何かが、純粋な春データMongoDBの中でそれを行うには方法はないように思われます。あなたは回避策が働いています。 – Tanrikut

関連する問題