Di MongoDB $count
operator agregasi meneruskan dokumen ke tahap berikutnya dalam pipa agregasi yang berisi hitungan jumlah dokumen yang diinput ke tahap saat ini.
Contoh
Misalkan kita memiliki koleksi yang disebut pets
dengan dokumen sebagai berikut:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
Kita dapat menggunakan operasi agregasi berikut untuk menghitung jumlah anjing dalam koleksi:
db.pets.aggregate([
{
$match: { type: "Dog" }
},
{
$count: "DogCount"
}
])
Hasil:
{ "DogCount" : 4 }
Cara kerja pipa agregasi adalah terdiri dari tahapan. Setiap tahap pipa memberikan masukan untuk tahap berikutnya.
Oleh karena itu, pada contoh di atas, tahap pertama memfilter koleksi hingga hanya dokumen yang memiliki type
dari dog
. Tahap kedua mengambil dokumen-dokumen tersebut, menghitungnya, dan meneruskan hasilnya ke tahap berikutnya. Mengingat ini adalah tahap terakhir dalam pipeline, kami melihat hasilnya.
Menghitung Dokumen yang Dikelompokkan
Berikut adalah contoh yang menggabungkan operator agregat $group dengan $count untuk mengembalikan hitungan setiap jenis hewan peliharaan dengan berat tertentu.
db.pets.aggregate([
{
$match: { weight: { $lt: 30 } }
},
{
$group: { _id: "$type", count: { $sum: 1 } }
}
])
Hasil:
{ "_id" : "Cat", "count" : 2 }
{ "_id" : "Bat", "count" : 1 }
{ "_id" : "Dog", "count" : 3 }
Tambahkan Tahap Pipeline
Dalam contoh ini, kami menambahkan tahap pipa untuk mengurutkan hasil. Secara khusus, kami menggunakan $sort
operator untuk melakukan ini.
db.pets.aggregate([
{
$match: { weight: { $lt: 30 } }
},
{
$group: { _id: "$type", count: { $sum: 1 } }
},
{
$sort : { count : -1, _id: 1 }
}
])
Hasil:
{ "_id" : "Dog", "count" : 3 }
{ "_id" : "Cat", "count" : 2 }
{ "_id" : "Bat", "count" : 1 }
Dalam hal ini, kami mengurutkan berdasarkan jumlah dalam urutan menurun (-1
menentukan urutan menurun), lalu dengan _id
dalam urutan menaik (1
menentukan urutan menaik).
Informasi Lebih Lanjut
Lihat dokumentasi MongoDB untuk informasi lebih lanjut.