sql >> Databáze >  >> NoSQL >> MongoDB

vícenásobný součet/počet na mongodb (součet pohlaví a součet všech výsledků)

Něco takového bude stačit:

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},
  }},
])

Produkce podle vašeho příkladu:

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

Hlavní myšlenkou je použít podmíněný výraz k mapování pohlaví na 0 nebo 1. Poté už potřebujete jen jednoduchý součet nad každým polem.



  1. Apache Hadoop Ozone Security – Autentizace

  2. rmongodb:pomocí $nebo v dotazu

  3. Nejúčinnější způsob, jak změnit hodnotu pole řetězce na jeho podřetězec

  4. seřadit podle délky řetězce v Mongodb/pymongo