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

Mongodb tæller adskilt med flere gruppefelter

En del af vejen dertil, men du skal først hente de "distinkte" værdier for "ferietype", derefter $group igen:

db.transactions.aggregate([
    { "$group": { 
        "_id": { 
            "employee" : "$employee",
            "Month": { "$month" : "$date" }, 
            "Year": { "$year" : "$date" },
            "holiday_type" : "$holiday_type"
        },
     }},
     { "$group": {
         "_id": {
            "employee" : "$_id.employee",
            "Month": "$_id.Month",
            "Year": "$_id.Year"
         },
         "count": { "$sum": 1 }
     }}
 ], { "allowDiskUse": true }
 );

Det er den generelle proces, da "distinkt" i SQL er en slags grupperingsoperation i sig selv. Så det er en dobbelt $group operation for at få dit korrekte resultat.




  1. Mongoose/MongoDB resultatfelter vises udefinerede i Javascript

  2. MongoDB grupper efter array indre-elementer

  3. MongoDB:aggregeret $project add-felt med statisk værdi

  4. MongoDb-forespørgselsbetingelse ved sammenligning af 2 felter