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

MongoDb Comment agréger par mois et par année

Vous avez perdu expenseAmount champ pendant la phase de projection. Ajoutez-le simplement :

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

Notez que si le champ n'existe pas dans le document, alors $sum renvoie 0.

Notez également qu'il existe un autre opérateur d'agrégation qui fonctionne comme prévu - $addFields . Il ajoute de nouveaux champs au document et préserve tous les champs existants du document d'entrée. Mais dans ce cas, vous n'avez besoin que du champ depenseAmount