使用 Spring 数据和 mongoDB 进行日期排序的聚合
Posted
技术标签:
【中文标题】使用 Spring 数据和 mongoDB 进行日期排序的聚合【英文标题】:Aggregation for sorting with date using Spring data and mongoDB 【发布时间】:2018-02-05 09:48:14 【问题描述】:我有以下记录,
id | date | name
1 | 01/09/2017 | user1
2 | 02/09/2017 | user2
3 | 03/09/2017 | user3
我想要聚合查询的最高日期记录。 是否可以使用 Sort 方法对带有日期的数据记录进行排序? 如果是,我应该如何编写查询? 有没有办法设置特定的日期格式进行排序?
(我使用的是Spring数据和mongoDB组合) 请提出建议。
【问题讨论】:
【参考方案1】:我不知道春季数据,但我可以建议您使用 ISO 日期格式以获得日期字段的最佳结果。
如果您只需要排序,那么您也可以使用“YYYY/MM/DD”(“2017/12/04”)格式。
在你的情况下,我们可以使用 "$split" ,"$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
]
【讨论】:
以上是关于使用 Spring 数据和 mongoDB 进行日期排序的聚合的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 @Query 在日期 Spring 数据 MongoDB 之间进行选择
使用 Spring Security + Spring 数据 + MongoDB 进行身份验证
使用 spring security 和 mongodb 进行 Rest 身份验证
使用 Spring Security、Spring Boot 和 MongoDB 进行密码编码和解码