MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose - Datum nur nach Datumsteil sortieren, Zeit ignorieren

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}}
])