MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

мулти сумиране/броене на mongodb (сумиране на пола и общо всички резултати)

Нещо подобно ще свърши работа:

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

Продуциране според вашия пример:

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

Основната идея е да се използва условен израз за да картографирате пола на 0 или 1. След това всичко, от което се нуждаете, е проста сума за всяко поле.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Прегледайте Mongo Collection и актуализирайте поле във всеки документ

  2. Може ли поле със списък да бъде ключ на фрагмент в MongoDB?

  3. Не може да се свърже с MongoDB errno:61

  4. 'process.nextTick(function() { throw err; })' - Undefined не е функция (mongodb/mongoose)

  5. Вземете най-новия запис на MongoDB по поле за дата и час