【发布时间】:2016-12-25 13:42:39
【问题描述】:
我将日期存储为“mm/dd/yyyy”格式的字符串。我想按此日期字段排序。我用很少的测试数据尝试了下面的查询。
db.collection.find().sort({date: -1}).pretty()
它工作正常。这会正常工作还是我应该将其转换为 MongoDate 以进行可靠排序?
【问题讨论】:
标签: mongodb
我将日期存储为“mm/dd/yyyy”格式的字符串。我想按此日期字段排序。我用很少的测试数据尝试了下面的查询。
db.collection.find().sort({date: -1}).pretty()
它工作正常。这会正常工作还是我应该将其转换为 MongoDate 以进行可靠排序?
【问题讨论】:
标签: mongodb
在 MongoDB 3.6 中,您现在可以使用 $dateFromString (https://docs.mongodb.com/manual/reference/operator/aggregation/dateFromString/)
db.logmessages.aggregate( [ {
$project: {
date: {
$dateFromString: {
dateString: '$date'
}
}
}
}, { $sort: { date : 1} } ] )
【讨论】:
由于yyyy 排在最后,这种排序不会在多年内起作用。
最好切换到yyyy-mm-dd 格式的字符串或实际的Date 类型。这两个都会正确排序。
【讨论】: