Puede probar la siguiente agregación en 3.6 para una ordenación personalizada.
Use $dateFromParts
para calcular la fecha sin hora en $addFields
para mantener el valor calculado como campo extra en el documento seguido de $sort
ordenar por campo.
$project
con exclusión para soltar el campo de clasificación para obtener el resultado esperado.
db.col.aggregate([
{"$addFields":{
"date":{
"$dateFromParts":{
"year":{"$year":"$datetime"},
"month":{"$month":"$datetime"},
"day":{"$dayOfMonth":"$datetime"}
}
}
}},
{"$sort":{"date":-1,"priority":1}},
{"$project":{"date":0}}
])