sql >> Databasteknik >  >> NoSQL >> MongoDB

multisumma/räkning på mongodb (summa kön och totalt alla resultat)

Något sådant kommer att göra susen:

db.collection.aggregate([
  {$project: {
    male: {$cond: [{$eq: ["$gender", "male"]}, 1, 0]},
    female: {$cond: [{$eq: ["$gender", "female"]}, 1, 0]},
  }},
  {$group: { _id: null, male: {$sum: "$male"},
                        female: {$sum: "$female"},
                        total: {$sum: 1},
  }},
])

Producerar med ditt exempel:

{ "_id" : null, "male" : 2, "female" : 3, "total" : 5 }

Nyckelidén är att använda ett villkorligt uttryck för att mappa könet till 0 eller 1. Efter det behöver du bara en enkel summa över varje fält.



  1. hur man visar en fråga när du använder frågekommentarer med MongoRepository med vårdata

  2. Antalet utgående nycklar listade av infokommandot på redis-slaven överensstämmer inte med vad jag ser

  3. Minneseffektivt sätt att lagra 32-bitars signerat heltal i Redis

  4. Använd fall för Redis poäng och rankningsfunktioner för set