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

MongoDB $count Operator Agregasi

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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor mongo memperbarui susunan bersarang

  2. WiredTiger dan pembaruan di tempat

  3. .NET praktik terbaik untuk koneksi MongoDB?

  4. Grup MongoDB dan jumlahkan dengan id sebagai kunci

  5. Bidang hasil Mongoose/MongoDB muncul tidak terdefinisi dalam Javascript