MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose - trier la date par partie de date uniquement, en ignorant l'heure

Vous pouvez essayer l'agrégation ci-dessous dans 3.6 pour un tri personnalisé.

Utilisez $dateFromParts pour calculer la date sans l'heure dans $addFields pour conserver la valeur calculée comme champ supplémentaire dans le document suivi de $sort trier sur le champ.

$project avec exclusion pour supprimer le champ de tri afin d'obtenir le résultat attendu.

db.col.aggregate([
 {"$addFields":{
   "date":{
     "$dateFromParts":{
       "year":{"$year":"$datetime"},
       "month":{"$month":"$datetime"},
       "day":{"$dayOfMonth":"$datetime"}
      }
    }
 }}, 
 {"$sort":{"date":-1,"priority":1}},
 {"$project":{"date":0}}
])