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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *