MongoDB排序日期字符串(mm / dd / yyyy)

use*_*r10 3 mongodb

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

db.collection.find().sort({date: -1}).pretty()
Run Code Online (Sandbox Code Playgroud)

而且工作正常。这将永远可以正常工作还是我应该将其转换为MongoDate以进行可靠的排序?

Joh*_*yHK 7

由于yyyy是最后一个,这种类型不会跨年工作。

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


Kev*_*ith 6

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

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

  • 这应该被视为直接对该问题的最佳答案。 (4认同)