Untuk menggabungkan jumlah dalam MongoDB untuk mendapatkan jumlah total, Anda dapat menggunakan operator $sum. Untuk memahami konsep di atas, mari kita membuat koleksi dengan dokumen −
> db.aggregateSumDemo.insertOne({"CustomerName":"Larry","Amount":140}); { "acknowledged" : true, "insertedId" : ObjectId("5c8baa0680f10143d8431e18") } > db.aggregateSumDemo.insertOne({"CustomerName":"Mike","Amount":160}); { "acknowledged" : true, "insertedId" : ObjectId("5c8baa1380f10143d8431e19") } > db.aggregateSumDemo.insertOne({"CustomerName":"Sam","Amount":300}); { "acknowledged" : true, "insertedId" : ObjectId("5c8baa1c80f10143d8431e1a") } > db.aggregateSumDemo.insertOne({"CustomerName":"David","Amount":500}); { "acknowledged" : true, "insertedId" : ObjectId("5c8baa2580f10143d8431e1b") }Tampilkan semua dokumen dari koleksi dengan bantuan metode find(). Permintaannya adalah sebagai berikut -
> db.aggregateSumDemo.find().pretty();_Berikut ini adalah outputnya −
{ "_id" : ObjectId("5c8baa0680f10143d8431e18"), "CustomerName" : "Larry", "Amount" : 140 } { "_id" : ObjectId("5c8baa1380f10143d8431e19"), "CustomerName" : "Mike", "Amount" : 160 } { "_id" : ObjectId("5c8baa1c80f10143d8431e1a"), "CustomerName" : "Sam", "Amount" : 300 } { "_id" : ObjectId("5c8baa2580f10143d8431e1b"), "CustomerName" : "David", "Amount" : 500 }Inilah kueri untuk mendapatkan jumlah total
Kasus 1 - Kueri adalah sebagai berikut -
> db.aggregateSumDemo.aggregate([ { .. $group: { .. _id: null, .. "TotalCount": { .. $sum:1 .. } .. } .. } ] );Berikut ini adalah outputnya −
{ "_id" : null, "TotalCount" : 4 }_Ini adalah kueri untuk jumlah agregat di MongoDB untuk mendapatkan jumlah total
Kasus 2 - Kueri adalah sebagai berikut -
Berikut ini adalah outputnya −
{ "_id" : null, "TotalAmount" : 1100 }_kemudian saat $facet diperkenalkan di Mongo 3. 4, yang lebih dioptimalkan) Dari dokumen MongoDB di sini
Jika saya menjalankan kueri ini tanpa batas maka 10 catatan akan diambil. Tapi saya ingin tetap membatasi sebagai 2. Jadi saya ingin mendapatkan catatan total untuk dihitung. Bagaimana saya bisa melakukannya dengan agregasi? . terima kasih
MongoDB adalah Database NoSQL Open-Source terkenal yang ditulis dalam C++. MongoDB adalah Database Berorientasi Dokumen yang menggunakan dokumen mirip JSON dengan Skema Dinamis untuk menyimpan data. Ini berarti bahwa Anda dapat menyimpan catatan Anda tanpa harus mengkhawatirkan Struktur Data, jumlah bidang, atau jenis bidang yang digunakan untuk menyimpan nilai. Dokumen di MongoDB mirip dengan Objek JSON
Anda dapat mengubah struktur catatan (yang disebut MongoDB sebagai Dokumen) hanya dengan menambahkan bidang baru atau menghapus yang sudah ada. Fitur MongoDB ini memungkinkan Anda untuk dengan mudah merepresentasikan Hubungan Hierarkis, Menyimpan Array, dan Struktur Data kompleks lainnya. Saat ini, banyak raksasa teknologi, termasuk Facebook, eBay, Adobe, dan Google, menggunakan MongoDB untuk menyimpan data dalam jumlah besar.
Fitur Utama MongoDB
Metode MongoDB Count digunakan untuk menghitung jumlah dokumen yang sesuai dengan kriteria yang ditentukan. Metode ini tidak benar-benar melakukan operasi find(), melainkan mengembalikan hitungan numerik dari dokumen yang memenuhi kriteria pemilihan
A) Sintaks Umum
Sintaks umum untuk menggunakan Metode Penghitungan MongoDB diberikan di bawah ini
db.collection.count(query, options)B) Parameter yang Terlibat dalam Metode Penghitungan MongoDB
Parameter yang terlibat dalam deskripsi sintaks pada Metode Penghitungan MongoDB adalah sebagai berikut
- pertanyaan. Ini mewakili kriteria seleksi. Jenis parameter ini adalah Dokumen
- pilihan. Ini mewakili parameter kedua yang opsional. Beberapa parameter opsional dibahas di bawah ini
- membatasi. Ini digunakan untuk memaksakan batasan pada jumlah maksimum dokumen yang perlu dihitung
- melewati. Ini adalah parameter opsional yang menentukan jumlah dokumen yang harus dilewati sebelum Metode Penghitungan MongoDB memulai penghitungan aktual
- petunjuk. Ini adalah dokumen atau bidang yang menentukan indeks yang akan digunakan untuk mendukung filter. Itu dapat menerima Dokumen yang Ditentukan Indeks atau String Nama Indeks, dan jika Anda menentukan indeks yang tidak ada, itu akan mengembalikan kesalahan
- readConcern. Kepedulian Baca di MongoDB memungkinkan Anda mengelola properti konsistensi dan isolasi data yang dibaca dari Kumpulan Replika Anda. Anda dapat memanfaatkan parameter readConcern jika Anda tidak ingin menggunakan masalah baca default
- pemeriksaan. Collation memungkinkan pengguna untuk menerapkan aturan perbandingan string khusus bahasa seperti aturan huruf besar dan tanda aksen. Itu dapat ditentukan untuk koleksi atau tampilan, indeks, atau operasi khusus yang mendukung pemeriksaan
- maxTimeMs. Ini adalah parameter opsional yang menentukan batas waktu kumulatif (dalam milidetik) untuk memproses operasi pada kursor
C) Catatan Penggunaan untuk Menggunakan Metode Penghitungan MongoDB
Beberapa poin penting yang harus Anda ketahui sebelum menggunakan Metode MongoDB Count adalah sebagai berikut
- Anda harus menghindari penggunaan db. koleksi. count() tanpa Predikat Kueri karena akan mengembalikan hasil berdasarkan metadata koleksi, yang dapat menghasilkan perkiraan jumlah
- Hitungan yang dihasilkan pada Cluster Terpecahkan tidak memfilter dokumen tanpa induk dengan benar. Dokumen Yatim Piatu di MongoDB adalah dokumen yang ada dalam bongkahan di pecahan lain sebagai akibat dari migrasi yang gagal atau pembersihan migrasi yang tidak lengkap karena pematian yang tidak normal
D) Contoh Praktis
Mari kita pahami cara kerja Metode Penghitungan MongoDB secara mendetail dengan bantuan beberapa contoh kueri. Misalkan Anda memiliki kumpulan bernama karyawan yang terdiri dari umur dan nama karyawan
{ “_id” : ObjectId(“600fab1788edfrcbcbc34e”), “name” : “John”, “age” : 22 } { “_id” : ObjectId(“600fab1788edfrcbcbc34f”), “name” : “David”, “age” : 32 } { “_id” : ObjectId(“600fab1788edfrcbcbc34g”), “name” : “Leo”, “age” : 24 } { “_id” : ObjectId(“600fab1788edfrcbcbc34h”), “name” : “Theon”, “age” : 41 } { “_id” : ObjectId(“600fab1788edfrcbcbc34i”), “name” : “Larry”, “age” : 46 }_Sekarang, jika Anda ingin menghitung jumlah objek dalam koleksi. Kueri akan terlihat seperti ini
db.employees.count()_Keluaran dari kueri di atas akan menjadi 5 karena ada total Lima Objek dalam Kumpulan karyawan
Sekarang, jika Anda ingin mengetahui jumlah karyawan yang berusia di atas 25 tahun. Kueri akan terlihat seperti ini
Di sini, $gt berarti lebih besar dari. Output untuk kueri di atas adalah 3 karena total ada tiga karyawan (David, Larry, dan Theon) yang usianya lebih dari 25 tahun
Bagaimana Cara Menghitung Dokumen dalam Cluster Bersama?
Seperti yang telah dibahas di bagian sebelumnya, jika ada dokumen yatim piatu atau migrasi bongkahan sedang berlangsung di klaster sharded, Metode Penghitungan MongoDB tanpa Predikat Kueri dapat menghasilkan hasil yang salah. Untuk menghindari situasi seperti itu, Anda dapat menggunakan db. koleksi. agregat() metode
Berbeda dengan db. koleksi. count(), metode Aggregate tidak menggunakan metadata koleksi untuk mengembalikan hitungan. Anda dapat memanfaatkan tahapan $count untuk mengambil jumlah dokumen yang akurat dalam koleksi yang diperlukan. Operasi berikut, misalnya, menghitung dokumen dalam koleksi
db.collection.aggregate( [ { $count: "myCount" } ])Kesimpulan
Artikel ini memperkenalkan Anda ke MongoDB dan fitur menonjol yang ditawarkannya. Selain itu, ini memperkenalkan Anda pada metode Penghitungan MongoDB yang dapat membantu Anda menghitung jumlah dokumen dalam koleksi
Saat bisnis Anda mulai berkembang, data dihasilkan dengan kecepatan eksponensial di semua aplikasi SaaS, Database, dan sumber lain perusahaan Anda. Untuk memenuhi kebutuhan penyimpanan dan komputasi data yang terus meningkat ini, Anda harus menginvestasikan sebagian bandwidth teknis Anda untuk Mengintegrasikan data dari semua sumber, Membersihkan & Mentransformasikannya, dan terakhir memuatnya ke Cloud Data Warehouse untuk Analisis Bisnis lebih lanjut
Semua tantangan ini dapat ditangani secara efisien oleh alat ETL Berbasis Cloud seperti Hevo Data
Kunjungi Situs Web kami untuk Menjelajahi HevoHevo Data, No-code Data Pipeline memberi Anda solusi yang konsisten dan andal untuk mengelola transfer data antara berbagai sumber seperti MongoDB dan berbagai Tujuan yang Diinginkan, dengan beberapa klik
Hevo Data dengan integrasi kuat dengan 100+ sumber (termasuk 40+ sumber gratis) memungkinkan Anda untuk tidak hanya mengekspor data dari sumber data yang Anda inginkan & memuatnya ke tujuan pilihan Anda, tetapi juga mengubah & memperkaya data Anda untuk menjadikannya analisis
Ingin mencoba Hevo? . Anda juga dapat melihat harga yang tidak ada duanya yang akan membantu Anda memilih paket yang tepat untuk kebutuhan bisnis Anda