【问题标题】:MongoDB sorting date string (mm/dd/yyyy)MongoDB 排序日期字符串 (mm/dd/yyyy)
【发布时间】:2016-12-25 13:42:39
【问题描述】:

我将日期存储为“mm/dd/yyyy”格式的字符串。我想按此日期字段排序。我用很少的测试数据尝试了下面的查询。

db.collection.find().sort({date: -1}).pretty()

它工作正常。这会正常工作还是我应该将其转换为 MongoDate 以进行可靠排序?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    在 MongoDB 3.6 中,您现在可以使用 $dateFromString (https://docs.mongodb.com/manual/reference/operator/aggregation/dateFromString/)

    db.logmessages.aggregate( [ {
       $project: {
          date: {
             $dateFromString: {
                dateString: '$date'
             }
          }
       }
    }, { $sort: { date : 1} } ] )
    

    【讨论】:

    • 这应该被认为是直接回答问题的最佳答案。
    【解决方案2】:

    由于yyyy 排在最后,这种排序不会在多年内起作用。

    最好切换到yyyy-mm-dd 格式的字符串或实际的Date 类型。这两个都会正确排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 2021-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多