2017-08-28 11 views
1

集約私はレコードを次している春のデータを使用して日付でソートすると、MongoDBの

id | date   | name 
1 | 01/09/2017 | user1 
2 | 02/09/2017 | user2 
3 | 03/09/2017 | user3 

私は集計クエリによって最高の日付の記録をしたいです。 データレコードの日付ソートにSortメソッドを使用できますか? はいの場合クエリをどのように書くべきですか? ソートの特定の日付形式を設定する方法はありますか?

(私はSpringデータとmongoDBの組み合わせを使用しています) お勧めします。

答えて

0

私は春データを認識していませんが、日付フィールドの最良の結果を得るには、ISO日付フォーマットを使用することをお勧めします。

並べ替えが必要な場合は、「YYYY/MM/DD」(「2017/12/04」)形式も使用できます。

は、あなたのケースでは、 "$スプリット"、 "$ reverseArray"、 "$のCONCAT" と "$ arrayElemAt"

[ 
    { 
    $addFields:{ 
     date:{$let:{ 
     vars:{rDate:{$reverseArray:{$split:["$date","/"]}}}, 
     in:{ 
     $concat:[{ $arrayElemAt: [ "$$rDate", 0] },"/",{ $arrayElemAt: [ "$$rDate", 1] },"/",{ $arrayElemAt: [ "$$rDate", 2] }] 
     } 
     } 
     } 
}}, 
{ 
$sort:{ 
date:1 
} 
} 
] 
+0

おかげShubhamを使用することができます。 – Shriram

関連する問題