MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

multi sum/count on mongodb (suma płci i suma wszystkich wyników)

Coś takiego załatwi sprawę:

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

Produkcja na twoim przykładzie:

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

Kluczowym pomysłem jest użycie wyrażenia warunkowego aby zmapować płeć na 0 lub 1. Następnie wystarczy prosta suma w każdym polu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Co to jest kursor w MongoDB?

  2. NotUniqueError:Próbowano zapisać zduplikowane unikalne klucze

  3. jaki jest domyślny rozmiar pliku w pymongo?

  4. Golang / MGO -- panika:brak osiągalnych serwerów

  5. Jak połączyć się z MongoDB w systemie Windows?