Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

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

MongoDB menyediakan tiga cara untuk melakukan agregasi

  • Pipa agregasi
  • Fungsi pengurangan peta
  • Agregasi tujuan tunggal

Pipa agregasi

Di 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

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

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

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

Tahapan. Setiap tahap dimulai dari operator tahap yaitu

  • $ cocok. Digunakan untuk memfilter dokumen dapat mengurangi jumlah dokumen yang diberikan sebagai input ke tahap selanjutnya
  • $proyek. Ini digunakan untuk memilih beberapa bidang tertentu dari koleksi
  • $grup. Ini digunakan untuk mengelompokkan dokumen berdasarkan beberapa nilai
  • $sort. Ini digunakan untuk mengurutkan dokumen yang mengatur ulang mereka
  • $lewati. Ini digunakan untuk melewati n sejumlah dokumen dan meneruskan dokumen yang tersisa
  • $batas. Ini digunakan untuk melewati n jumlah dokumen pertama sehingga membatasinya
  • $bersantai. Ini digunakan untuk melepas dokumen yang menggunakan array i. e. itu mendekonstruksi bidang array dalam dokumen untuk mengembalikan dokumen untuk setiap elemen
  • $ keluar. Ini digunakan untuk menulis dokumen yang dihasilkan ke koleksi baru

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

  • jumlah. Ini menjumlahkan nilai numerik untuk dokumen di setiap grup
  • menghitung. Ini menghitung jumlah total dokumen
  • rata-rata. Ini menghitung rata-rata semua nilai yang diberikan dari semua dokumen
  • min. Itu mendapat nilai minimum dari semua dokumen
  • maks. Itu mendapat nilai maksimum dari semua dokumen
  • pertama. Itu mendapat dokumen pertama dari pengelompokan
  • terakhir. Itu mendapat dokumen terakhir dari pengelompokan

Catatan

  • di $group _id adalah bidang Wajib
  • $out harus menjadi tahap terakhir dalam alur
  • $ jumlah. 1 akan menghitung jumlah dokumen dan $sum. ”$fare” akan memberikan jumlah total tarif yang dihasilkan per id

Contoh

Dalam contoh berikut, kami bekerja dengan

Basis data. GeeksForGeeks

Koleksi. siswa

Dokumen. Tujuh dokumen yang memuat rincian siswa berupa field-value pair

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Menampilkan jumlah siswa dalam satu bagian saja
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 $

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Menampilkan jumlah siswa di kedua bagian dan usia maksimum dari kedua bagian
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 .  

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Menampilkan detail siswa yang usianya lebih dari 30 tahun menggunakan tahap pencocokan
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

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Menyortir siswa berdasarkan usia
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

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Menampilkan detail siswa yang memiliki usia terbesar di bagian – B
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

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Melepaskan siswa berdasarkan mata pelajaran

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"}]) 

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

Pengurangan Peta

Pengurangan 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

Basis data. GeeksForGeeks

Koleksi. siswaMark

Dokumen. Tujuh dokumen yang memuat rincian siswa berupa field-value pair

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

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

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

Agregasi Tujuan Tunggal

Ini 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

Basis data. GeeksForGeeks

Koleksi. siswaMark

Dokumen. Tujuh dokumen yang memuat rincian siswa berupa field-value pair

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Menampilkan nama dan usia yang berbeda (tidak berulang)
db.studentsMarks.distinct("name")
_

Di sini, kami menggunakan metode yang berbeda () yang menemukan nilai berbeda dari bidang yang ditentukan (i. e. , nama)

Bisakah kita menggunakan count dengan fungsi agregat di mongodb?

  • Menghitung jumlah total dokumen
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.