Sie können die folgende Aggregation in 3.6 für eine benutzerdefinierte Sortierung ausprobieren.
Verwenden Sie $dateFromParts
Datum ohne Uhrzeit in $addFields
zu berechnen
um den berechneten Wert als zusätzliches Feld im Dokument beizubehalten, gefolgt von $sort
nach Feld sortieren.
$project
mit Ausschluss, um das Sortierfeld zu löschen, um die erwartete Ausgabe zu erhalten.
db.col.aggregate([
{"$addFields":{
"date":{
"$dateFromParts":{
"year":{"$year":"$datetime"},
"month":{"$month":"$datetime"},
"day":{"$dayOfMonth":"$datetime"}
}
}
}},
{"$sort":{"date":-1,"priority":1}},
{"$project":{"date":0}}
])