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

MongoDB брои документи за всеки елемент от масива

Можете да $unwind вашия масив, за да получите единичен документ за елемент и след това изпълнете $group за преброяване на елементи:

db.collection.aggregate([
    {
        $unwind: "$elements"
    },
    {
        $group: {
            _id: "$elements",
            count: { $sum: 1 }
        }
    }
])

РЕДАКТИРАНЕ:можете да използвате допълнителна група с $replaceRoot и $arrayToObject за връщане на вашите идентификатори като ключове и броене като стойности:

db.collection.aggregate([
    {
        $unwind: "$elements"
    },
    {
        $group: {
            _id: "$elements",
            count: { $sum: 1 }
        }
    },
    {
        $group: {
            _id: null,
            counts: { $push: { k: "$_id", v: "$count" } }
        }
    },
    {
        $replaceRoot: {
            newRoot: { $arrayToObject: "$counts" }
        }
    }
])

Mongo Playground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Java | Как да управлявате връзката

  2. Пул от връзки в пакет Go mgo

  3. Невъзможно е да се получи собственост от обект мангуста

  4. Проверете удостоверяването на MongoDB с драйвер за Java 3.0

  5. Как мога да импортирам данни в Mongodb от Json файл с помощта на java