2017-08-28 32 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