カスタムソートについては、3.6で以下の集計を試すことができます。
$dateFromParts
を使用します
$addFields
で時刻なしの日付を計算するには
計算された値をドキュメントの追加フィールドとして保持し、その後に $sort
フィールドで並べ替えます。
$project
期待される出力を得るためにソートフィールドを削除するための除外あり。
db.col.aggregate([
{"$addFields":{
"date":{
"$dateFromParts":{
"year":{"$year":"$datetime"},
"month":{"$month":"$datetime"},
"day":{"$dayOfMonth":"$datetime"}
}
}
}},
{"$sort":{"date":-1,"priority":1}},
{"$project":{"date":0}}
])