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

MongoDb Sådan aggregeres efter måned og år

Du har mistet expenseAmount felt under projektionsfasen. Du skal blot tilføje det:

   {$project : { 
          month : {$month : "$entryTime"}, 
          year : {$year :  "$entryTime"},
          expenseAmount : 1
      }},

Bemærk, at hvis feltet ikke findes i dokumentet, så $sum returnerer 0.

Bemærk også, at der er en anden aggregeringsoperatør, der udfører, som du forventede - $addFields . Den tilføjer nye felter til dokumentet og bevarer alle eksisterende felter fra inputdokumentet. Men i dette tilfælde skal du kun bruge feltet omkostningsbeløb



  1. mongo gruppe forespørgsel, hvordan man opbevarer felter

  2. Sådan forespørges BsonExtraElements i MongoDB via Linq

  3. Hvordan udfører jeg en id-array-forespørgsel i Mongoose?

  4. Mongoose findOneAndUpdate og runValidators virker ikke