Puoi provare sotto l'aggregazione in 3.6 per l'ordinamento personalizzato.
Usa $dateFromParts
per calcolare la data senza ora in $addFields
per mantenere il valore calcolato come campo aggiuntivo nel documento seguito da $sort
ordina per campo.
$project
con l'esclusione per eliminare il campo di ordinamento per ottenere l'output previsto.
db.col.aggregate([
{"$addFields":{
"date":{
"$dateFromParts":{
"year":{"$year":"$datetime"},
"month":{"$month":"$datetime"},
"day":{"$dayOfMonth":"$datetime"}
}
}
}},
{"$sort":{"date":-1,"priority":1}},
{"$project":{"date":0}}
])