2017-08-28 33 views
1

我有如下記錄,匯聚了使用Spring數據和日期排序和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