Você pode tentar a agregação abaixo em 3.6 para classificação personalizada.
Use
$dateFromParts
para calcular data sem hora em $addFields
para manter o valor calculado como o campo extra no documento seguido por $classificar
classificar em campo. $project
com exclusão para descartar o campo de classificação para obter a saída esperada. db.col.aggregate([
{"$addFields":{
"date":{
"$dateFromParts":{
"year":{"$year":"$datetime"},
"month":{"$month":"$datetime"},
"day":{"$dayOfMonth":"$datetime"}
}
}
}},
{"$sort":{"date":-1,"priority":1}},
{"$project":{"date":0}}
])