Можете да опитате по-долу агрегиране в 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}}
])