MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoose - ordena data apenas por parte da data, ignorando a hora


Você pode tentar a agregação abaixo em 3.6 para classificação personalizada.

Use $dateFromParts para calcular data sem hora em $addFields para manter o valor calculado como o campo extra no documento seguido por $classificar classificar em campo.

$project com exclusão para descartar o campo de classificação para obter a saída esperada.
db.col.aggregate([
 {"$addFields":{
   "date":{
     "$dateFromParts":{
       "year":{"$year":"$datetime"},
       "month":{"$month":"$datetime"},
       "day":{"$dayOfMonth":"$datetime"}
      }
    }
 }}, 
 {"$sort":{"date":-1,"priority":1}},
 {"$project":{"date":0}}
])