0

に$ dateToString操作からMongoDBの結果を変換する「日付のみ」の結果:私が得たどのようにJavaオブジェクト

db.getCollection('tournamentactivity').aggregate([ 
{ 
    $project:{ 
      "yearMonthDay": 
       { 
        "$dateToString" : 
        { 
         "format" : "%Y-%m-%d", 
         "date" : "$activityDate" 
        } 
       },     
       "tid" : 1, 
       "dayActivity.type" : 1  
      } 
}, 
{ 
    $match:{ 
      $and : [ 
      { "tid" : "12345678" }, 
      { "yearMonthDay" : "2017-11-05" }    
     ] 


     }  
}]) 

すべてここまでは良いです。しかし、私は私の応答の種類で同じを送信する必要があるように、Javaオブジェクトで同じものを変換しようとしています。

私はこのチュートリアル続いている:Projectionsをし、以下のように私のJavaコードで同じことを実行しようとしました:

ProjectionOperation projectToMatchModel = project(). 
      andExpression("format").as("%Y-%m-%d"). 
      andExpression("date").as("$activityDate"); 

私はこの前に集計操作を書かれているが、私はこの結果を変換する方法が分かりません/ Javaコードのクエリ。

私が間違っていてどこで同じものを使うのか教えてくれる人 集約集合= newAggregation( );方法?

ありがとうございました。 FYI

:私は私の集約オブジェクトでこのクエリを変換するには考えていると私は投影操作の選択に間違っている可能性があります。私が間違っているなら、私の上で簡単に行ってください!

答えて

1

以下の集計を試すことができます。

は輸入

import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; 
import static org.springframework.data.mongodb.core.aggregation.Fields.field; 
import static org.springframework.data.mongodb.core.aggregation.Fields.from; 
import static org.springframework.data.mongodb.core.query.Criteria.where; 

import org.springframework.data.mongodb.core.aggregation.Aggregation; 
import org.springframework.data.mongodb.core.aggregation.DateOperators; 

(拡張メソッドを使用して)オプション1

Aggregation aggregation = newAggregation(
     project(from(field("dayActivity.type", "dayActivity.type"), 
        field("tid"))). 
       and("activityDate").dateAsFormattedString("%Y-%m-%d").as("yearMonthDay"), 
     match(where("yearMonthDay").is("2017-11-05").and("tid").is("12345678")) 
); 

(集計式を使用した)オプション2

Aggregation aggregation = newAggregation(
     project(from(field("dayActivity.type", "dayActivity.type"), 
        field("tid"))). 
       and(DateOperators.dateOf("activityDate").toString("%Y-%m-%d")).as("yearMonthDay"), 
     match(where("yearMonthDay").is("2017-11-05").and("tid").is("12345678")) 
); 
+0

おかげトンの男の下に追加します!あなたは私を救いました – Vishal

関連する問題