"mm/dd/yyyy"形式の文字列として日付を格納しています。私はこの日付フィールドでソートしたい。私はいくつかのテストデータで以下のクエリを試しました。MongoDBソート日付文字列(mm/dd/yyyy)
db.collection.find().sort({date: -1}).pretty()
とうまくいきます。これはいつまでもうまくいくのでしょうか、これをMongoDateに変換して信頼性の高い並べ替えを行うべきでしょうか?
"mm/dd/yyyy"形式の文字列として日付を格納しています。私はこの日付フィールドでソートしたい。私はいくつかのテストデータで以下のクエリを試しました。MongoDBソート日付文字列(mm/dd/yyyy)
db.collection.find().sort({date: -1}).pretty()
とうまくいきます。これはいつまでもうまくいくのでしょうか、これをMongoDateに変換して信頼性の高い並べ替えを行うべきでしょうか?
最後にyyyy
とすると、この種の分類は長年にわたって機能しません。
おそらくyyyy-mm-dd
の書式設定された文字列または実際のDate
タイプに切り替えることをお勧めします。両方とも正しく並べ替えます。
のMongoDB 3.6の中であなたが今使用することができます$dateFromString
(https://docs.mongodb.com/manual/reference/operator/aggregation/dateFromString/)
db.logmessages.aggregate([ {
$project: {
date: {
$dateFromString: {
dateString: '$date'
}
}
}
}, { $sort: { date : 1} } ])