MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB menghitung dokumen untuk setiap elemen array

Anda dapat $unwind array Anda untuk mendapatkan satu dokumen per elemen dan kemudian jalankan $group untuk menghitung elemen:

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

EDIT:Anda dapat menggunakan grup tambahan dengan $replaceRoot dan $arrayToObject untuk mengembalikan id Anda sebagai kunci dan dihitung sebagai nilai:

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

Taman Bermain Mongo




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa mendapatkan semua id dokumen di MongoDB?

  2. Desain Skema MongoDB (array bersarang vs koleksi terpisah)

  3. Bandingkan dua bidang array dalam dokumen yang sama

  4. Driver MongoDB c# menimpa Nilai default string dari null ke string.empty

  5. Peta Kurangi dengan mongo pada dokumen bersarang