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

MongoDB $sortByCount Operator Agregasi

Di MongoDB $sortByCount tahap pipa agregasi mengelompokkan dokumen yang masuk berdasarkan nilai ekspresi yang ditentukan, lalu menghitung jumlah dokumen di setiap grup yang berbeda.

Setiap grup adalah keluaran dalam dokumennya sendiri, yang terdiri dari dua bidang:

  • sebuah _id bidang yang berisi nilai pengelompokan yang berbeda, dan
  • sebuah count kolom yang berisi jumlah dokumen yang termasuk dalam pengelompokan tersebut.

Dokumen diurutkan berdasarkan count dalam urutan menurun.

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 }
{ "_id" : 8, "name" : "Tweet", "type" : "Bird", "weight" : 1 }
{ "_id" : 9, "name" : "Flutter", "type" : "Bird", "weight" : 2 }

Di bawah ini adalah contoh kueri yang menggunakan $sortByCount operator.

db.pets.aggregate([ 
    { $match: {} }, 
    { $sortByCount: "$type" } 
])

Hasil:

{ "_id" : "Dog", "count" : 4 }
{ "_id" : "Cat", "count" : 2 }
{ "_id" : "Bird", "count" : 2 }
{ "_id" : "Bat", "count" : 1 }

Dalam contoh ini, kami menampilkan setiap jenis hewan peliharaan, bersama dengan jumlah hewan peliharaan dari masing-masing jenis.

Ini setara dengan yang berikut:

db.pets.aggregate([
    {
      $match: { }
    },
    {
      $group: { _id: "$type", count: { $sum: 1 } }
    },
     { 
      $sort : { count : -1 } 
    }
])

Berikut contoh lain, tetapi dengan kriteria pemfilteran tambahan.

db.pets.aggregate([
    {
      $match: { weight: { $lt: 15 } }
    },
    {
      $sortByCount: "$type"
    }
])

Hasil:

{ "_id" : "Cat", "count" : 2 }
{ "_id" : "Bird", "count" : 2 }
{ "_id" : "Dog", "count" : 1 }
{ "_id" : "Bat", "count" : 1 }

Kali ini hanya ada satu anjing dalam dokumen yang dikirimkan ke $sortByCount , karena tahap pipa pertama memindahkan anjing dengan berat tertentu. Oleh karena itu, $sortByCount cukup hitung angka dari dokumen yang diberikan padanya, yang hanya menyertakan satu anjing.

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. Menyembunyikan kredensial basis data dengan benar

  2. MongoDB membatasi ukuran penyimpanan?

  3. MongoDB:Tidak dapat mengkanonikalisasi kueri:Proyeksi BadValue tidak dapat memiliki campuran penyertaan dan pengecualian

  4. Mereplikasi MongoDB Di Seluruh Lingkungan Cloud Hibrida

  5. MongoDB mengembalikan True jika dokumen ada