Mongodb: cara mengelompokkan dan menghitung
Anda dapat menggunakan sintaks berikut untuk mengelompokkan dan menghitung di MongoDB:
db.collection.aggregate([ { $group : { _id : " $field_name ", count :{ $sum :1}}} ])
Perhatikan bahwa field_name adalah bidang yang ingin Anda kelompokkan.
Contoh berikut memperlihatkan cara menggunakan sintaksis ini dengan tim koleksi dengan dokumen berikut:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Contoh 1: mengelompokkan berdasarkan dan menghitung
Kita dapat menggunakan kode berikut untuk mengelompokkan berdasarkan bidang “posisi” dan menghitung kemunculan setiap posisi.
db.teams.aggregate([ { $group : { _id : " $position ", count :{ $sum :1}}} ])
Ini mengembalikan hasil berikut:
{ _id: ' Forward ', count: 1 } { _id: ' Guard ', count: 3 } { _id: ' Center ', count: 1 }
Ini memberitahu kita:
- Posisi “Maju” muncul 1 kali.
- Posisi “Penjaga” muncul 3 kali.
- Posisi “Tengah” muncul 1 kali.
Contoh 2: mengelompokkan berdasarkan dan menghitung (lalu mengurutkan)
Kita dapat menggunakan kode berikut untuk menghitung kemunculan setiap posisi dan secara otomatis mengurutkan hasilnya dalam urutan menaik :
db.teams.aggregate([ { $group : { _id : " $position ", count :{ $sum :1}}}, { $sort : { count : 1}} ])
Ini mengembalikan hasil berikut:
{ _id: ' Forward ', count: 1 } { _id: ' Center ', count: 1 } { _id: ' Guard ', count: 3 }
Kita dapat menggunakan -1 dalam argumen count untuk mengurutkan hasil dalam urutan menurun :
db.teams.aggregate([ { $group : { _id : " $position ", count :{ $sum :1}}}, { $sort : { count :-1}} ])
Ini mengembalikan hasil berikut:
{ _id: ' Guard ', count: 3 } { _id: ' Forward ', count: 1 } { _id: ' Center ', count: 1 }
Catatan : Anda dapat menemukan dokumentasi lengkap untuk $group di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di MongoDB:
MongoDB: Cara mengelompokkan berdasarkan dan menjumlahkan
MongoDB: Cara menghitung nilai berbeda dalam suatu bidang
MongoDB: Cara mengelompokkan berdasarkan beberapa bidang