sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose - sortera endast datum efter datumdel, ignorerar tid

Du kan prova nedanstående aggregering i 3.6 för anpassad sortering.

Använd $dateFromParts för att beräkna datum utan tid i $addFields för att behålla det beräknade värdet som det extra fältet i dokumentet följt av $sort sortera på fält.

$project med undantag för att ta bort sorteringsfältet för att få förväntad utdata.

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


  1. Ska "StackExchange.Redis.ConnectionMultiplexer" vara "AddSingleton" eller "AddScope" i .NET Core-beroendeinjektion?

  2. Vad är returtyp av db.collection.find() i mongodb

  3. Mongoose sparar inte data

  4. returnera endast den sista nivån av den inbäddade egenskapen som söks i ett dokument