【问题标题】:Aggregation for sorting with date using Spring data and mongoDB使用 Spring 数据和 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组合) 请提出建议。

【问题讨论】:

    标签: mongodb spring-data


    【解决方案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
    }
    }
    ]
    

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 2018-04-25
      • 2017-01-24
      • 2017-04-23
      • 2018-10-28
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多