Di MongoDB, operasi agregasi memproses catatan/dokumen data dan mengembalikan hasil yang dihitung. Itu mengumpulkan nilai dari berbagai dokumen dan mengelompokkannya bersama-sama dan kemudian melakukan berbagai jenis operasi pada data yang dikelompokkan seperti jumlah, rata-rata, minimum, maksimum, dll untuk mengembalikan hasil yang dihitung. Ini mirip dengan fungsi agregat SQL Show MongoDB menyediakan tiga cara untuk melakukan agregasi
Pipa agregasiDi MongoDB, pipa agregasi terdiri dari tahapan dan setiap tahapan mengubah dokumen. Atau dengan kata lain, pipa agregasi adalah pipa multi-tahap, jadi di setiap negara bagian, dokumen diambil sebagai input dan menghasilkan kumpulan dokumen yang dihasilkan sekarang di tahap berikutnya (id tersedia) dokumen yang dihasilkan diambil sebagai input dan menghasilkan output . Tahapan pipa dasar menyediakan filter yang akan berfungsi seperti kueri dan transformasi dokumen memodifikasi dokumen yang dihasilkan dan pipa lainnya menyediakan alat untuk mengelompokkan dan menyortir dokumen. Anda juga dapat menggunakan pipa agregasi dalam koleksi pecahan Mari kita bahas pipa agregasi dengan bantuan sebuah contoh Pada contoh di atas kumpulan tarif kereta api pada tahap pertama. Di sini, tahap $match memfilter dokumen berdasarkan nilai dalam bidang kelas i. e. kelas. "kelas satu" dan meneruskan dokumen ke tahap kedua. Pada Tahap Kedua, tahap $group mengelompokkan dokumen berdasarkan bidang id untuk menghitung jumlah tarif untuk setiap id unik. Di sini, fungsi agregat() digunakan untuk melakukan agregasi yang dapat memiliki tiga tahapan operator, ekspresi dan akumulator Tahapan. Setiap tahap dimulai dari operator tahap yaitu
Ekspresi. Itu mengacu pada nama bidang dalam dokumen input untuk e. g. { $grup. { _Indo. “$id“, total. {$jumlah. ”$fare“}}} di sini $id dan $fare adalah ekspresi Akumulator. Ini pada dasarnya digunakan di babak penyisihan grup
Catatan
Contoh Dalam contoh berikut, kami bekerja dengan
db.students.aggregate([{$match:{sec:"B"}},{$count:"Total student in sec:B"}]) Dalam contoh ini, untuk menghitung jumlah siswa di bagian B, pertama-tama kita memfilter dokumen menggunakan operator $match, lalu menggunakan akumulator $count untuk menghitung jumlah total dokumen yang diteruskan setelah memfilter dari $
db.students.aggregate([{$group: {_id:"$sec", total_st: {$sum:1}, max_age:{$max:"$age"} } }])_ Dalam contoh ini, kami menggunakan $group untuk mengelompokkan, sehingga kami dapat menghitung untuk setiap bagian lain dalam dokumen, di sini $sum meringkas dokumen di setiap grup dan akumulator $max diterapkan pada ekspresi usia yang akan menemukan usia maksimum dalam .
db.students.aggregate([{$match:{age:{$gt:30}}}]) Dalam contoh ini, kami menampilkan siswa yang usianya lebih dari 30 tahun. Jadi kami menggunakan operator $match untuk memfilter dokumen
db.students.aggregate([{'$sort': {'age': 1}}]) Dalam contoh ini, kami menggunakan operator $sort untuk mengurutkan dalam urutan menaik yang kami berikan 'usia'. 1 jika kita ingin mengurutkan dalam urutan menurun kita cukup mengubah 1 menjadi -1 i. e. 'usia'. -1
db.students.aggregate([{$match:{sec:"B"}},{'$sort': {'age': -1}},{$limit:1}])_ Pada contoh ini, pertama-tama kita hanya memilih dokumen-dokumen yang memiliki bagian B saja, untuk itu kita menggunakan operator $match kemudian mengurutkan dokumen secara descending menggunakan $sort dengan mengatur ‘age’. -1 dan kemudian hanya menampilkan hasil teratas kami menggunakan $limit
Unwinding bekerja pada array di sini dalam koleksi kami, kami memiliki berbagai mata pelajaran (yang terdiri dari berbagai mata pelajaran di dalamnya seperti matematika, fisika, bahasa Inggris, dll) sehingga pelepasan akan dilakukan pada i. e. array akan didekonstruksi dan hasilnya hanya akan memiliki satu subjek, bukan array subjek yang ada sebelumnya db.students.aggregate([{$unwind:"$subject"}]) Pengurangan PetaPengurangan peta digunakan untuk menggabungkan hasil untuk volume data yang besar. Pengurangan peta memiliki dua fungsi utama, satu adalah peta yang mengelompokkan semua dokumen dan yang kedua adalah pengurangan yang melakukan operasi pada data yang dikelompokkan Sintaksis db.collectionName.mapReduce(mappingFunction, reduceFunction, {out:'Result'});_ Contoh Dalam contoh berikut, kami bekerja dengan
var mapfunction = function(){emit(this.age, this.marks)} var reducefunction = function(key, values){return Array.sum(values)} db.studentsMarks.mapReduce(mapfunction, reducefunction, {'out':'Result'}) Sekarang, kita akan mengelompokkan dokumen berdasarkan usia dan menemukan nilai total di setiap kelompok umur. Jadi, kita akan membuat dua variabel pertama fungsi peta yang akan memancarkan usia sebagai kunci (dinyatakan sebagai "_id" dalam output) dan menandai sebagai nilai data yang dipancarkan ini diteruskan ke fungsi pengurangan kita, yang mengambil kunci dan nilai sebagai data yang dikelompokkan, lalu . Setelah melakukan reduksi hasilnya disimpan dalam sebuah koleksi disini dalam hal ini koleksinya adalah Hasil Agregasi Tujuan TunggalIni digunakan saat kita membutuhkan akses sederhana ke dokumen seperti menghitung jumlah dokumen atau untuk menemukan semua nilai berbeda dalam dokumen. Ini hanya menyediakan akses ke proses agregasi umum menggunakan metode count(), different(), dan estimasiDocumentCount(), sehingga tidak memiliki fleksibilitas dan kemampuan pipeline Contoh Dalam contoh berikut, kami bekerja dengan
db.studentsMarks.distinct("name")_ Di sini, kami menggunakan metode yang berbeda () yang menemukan nilai berbeda dari bidang yang ditentukan (i. e. , nama)
db.studentsMarks.count()_ Di sini, kami menggunakan count() untuk menemukan jumlah total dokumen, tidak seperti metode find() yang tidak menemukan semua dokumen melainkan menghitungnya dan mengembalikan nomor Bagaimana cara menghitung data dalam agregat MongoDB?MongoDB mengumpulkan elemen $count dalam array. Agregat MongoDB $hitung lebih besar dari. . Setelah itu, hubungkan dengan server Akses koleksi MongoDB Sales dari database mydatabase Setelah itu, kami menerapkan operasi agregat $count untuk menghitung jumlah dokumen Bagaimana Anda menghitung agregat?Jumlahkan semua angka dalam grup . Dalam contoh, 45 ditambah 30 ditambah 10 sama dengan skor agregat 95.
Bagaimana cara menambahkan hitungan di MongoDB?count() — Panduan MongoDB. . kueri dapat menggunakan indeks, kueri hanya berisi kondisi pada kunci indeks, dan predikat kueri mengakses satu rentang kunci indeks yang berdekatan Bagaimana cara menghitung jumlah item di MongoDB?n = count( conn , collection ,Query= mongoquery ) mengembalikan jumlah total dokumen dalam kueri MongoDB yang dieksekusi pada koleksi. |