MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoose - ordina solo la parte data per data, ignorando l'ora

Puoi provare sotto l'aggregazione in 3.6 per l'ordinamento personalizzato.

Usa $dateFromParts per calcolare la data senza ora in $addFields per mantenere il valore calcolato come campo aggiuntivo nel documento seguito da $sort ordina per campo.

$project con l'esclusione per eliminare il campo di ordinamento per ottenere l'output previsto.

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