Operator $Min MongoDB

Operator Min Mongodb



Jika anda bukan pengguna baharu pangkalan data atau pengaturcaraan, anda mesti telah mencuba atur cara dan pertanyaan yang menggunakan operator perbandingan – lebih besar daripada, kurang daripada, sama dengan, dll. Dalam MongoDB, di mana kami menggunakan operator '$set' untuk kemas kini rekod medan tertentu atau tambah rekod baharu pada pangkalan data, kami juga boleh mencapai hasil yang sama menggunakan operator perbandingan seperti '$min' dan '$max'. Dalam MongoDB, pengendali '$min' boleh digunakan dalam banyak pertanyaan fungsi untuk mengemas kini medan tertentu apabila nilai baharu kurang daripada nilai yang telah dimasukkan. Juga, ia boleh digunakan untuk mengumpulkan dan memaparkan rekod koleksi dalam susunan tertentu. Panduan ini membantu anda dengan cara yang berbeza untuk membuang operator '$min' dalam MongoDB.

Contoh 1:

Bermula dengan ilustrasi pertama, kami menunjukkan penggunaan operator '$min' dalam MongoDB untuk mengemas kini rekod yang telah dimasukkan menggunakan alat cangkerang MongoDB dalam sistem Windows. Oleh itu, anda mesti mempunyai beberapa rekod yang telah ditambahkan ke pangkalan data anda. Jadi, kami menggunakan pertanyaan fungsi insertMany() untuk menambah sejumlah 5 rekod dalam koleksi 'pesanan' pangkalan data 'ujian'. Setiap rekod yang disisipkan yang ditunjukkan dalam ilustrasi berikut mengandungi sejumlah 4 medan - id, tajuk, harga jualan dan cukai. Data 5 rekod ini berjaya dimasukkan mengikut output yang dilampirkan:

ujian > db.order.insertMany ( [ { 'ID' :01, 'Tajuk' : 'Sabun' , 'Harga jualan' : 500 , 'Cukai' : 24 } ,
... { 'ID' :02, 'Tajuk' : 'syampu' , 'Harga jualan' : 700 , 'Cukai' : 27 } ,
... { 'ID' :03, 'Tajuk' : 'Bahan pencuci' , 'Harga jualan' : 400 , 'Cukai' : 22 } ,
... { 'ID' :04, 'Tajuk' : 'Minyak wangi' , 'Harga jualan' : 900 , 'Cukai' : 30 } ,
... { 'ID' :05, 'Tajuk' : 'Kabus' , 'Harga jualan' : 850 , 'Cukai' : 27 } ] )







Sudah tiba masanya untuk melihat rekod yang dimasukkan dalam pangkalan data 'ujian'. Untuk itu, anda perlu membuang kaedah 'find()' bersama-sama dengan kaedah 'forEach', mengambil 'printjson' sebagai hujah dalam arahan 'db'. Menggunakan koleksi bernama 'pesanan', kami mempunyai rekod yang dipaparkan pada skrin.



ujian > db.order.cari ( ) .untuk setiap ( printjson )



Sudah tiba masanya untuk menggunakan operator '$min' dalam pertanyaan fungsi 'updateOne' untuk mengemas kini satu rekod daripada koleksi 'pesanan' yang baru dibuat. Medan 'id' digunakan sebagai pengecam unik untuk mengemas kini rekod tertentu daripada pangkalan data manakala pengendali '$min' digunakan pada medan 'SalePrice' untuk mengemas kini nilainya kepada 600 jika ia kurang daripada nilai yang telah dimasukkan. Mesej output menunjukkan bahawa pertanyaan berjaya tetapi tiada kemas kini dibuat.





ujian > db.order.updateOne ( { ID: 3 } , { $min : { Harga jualan: 600 } } )

Sebab mengapa tiada kemas kini dibuat pada medan 'SalePrice' dalam rekod ke-3 ialah ia mengandungi nilai '400' yang kurang daripada '600'. Oleh itu, pengendali '$min' tidak mengemas kini nilai minimum '400' dengan nilai '600' yang lebih besar seperti pertanyaan find() yang dilampirkan berikut:



ujian > db.order.cari ( ) .untuk setiap ( printjson )

Mari buat sedikit perubahan pada pertanyaan kemas kini untuk mendapatkan output yang berbeza kali ini. Kami menggunakan arahan 'db' yang sama yang menggunakan fungsi 'updateOne' di dalamnya untuk mengubah suai satu rekod '3'. Operator '$min' digunakan pada medan 'SalePrice' untuk menetapkan nilainya kepada '300' jika nilai '300' kurang daripada nilai yang telah dimasukkan. Kami tahu bahawa nilai '400' yang telah dimasukkan dalam medan Harga Jualan adalah lebih besar daripada nilai baharu '300' untuk dibandingkan. Jadi, ia menggantikan '400' dengan '300' kali ini. Mesej output menunjukkan kejayaan pelaksanaan pertanyaan ini. Kiraan ubah suai = 1 bermakna 1 rekod diubah suai.

ujian > db.order.updateOne ( { ID: 3 } , { $min : { Harga jualan: 300 } } )

Selepas memaparkan rekod koleksi 'pesanan' daripada pangkalan data 'ujian' dalam format JSON melalui arahan fungsi 'cari()' dalam cangkerang MongoDB, kami mendapati rekod ke-3 berjaya dikemas kini. Nilai 400 medan 'Harga Jualan' digantikan dengan nilai 300.

ujian > db.order.cari ( ) .untuk setiap ( printjson )

Contoh 2:

Dalam ilustrasi MongoDB ini, kami mengambil rekod pangkalan data tertentu dengan mengumpulkannya mengenai pengendali '$min' mengikut nilai minimum dalam rekod. Andaikan anda mempunyai 5 rekod yang sama dalam koleksi 'pesanan' pangkalan data 'ujian' MongoDB dan anda perlu mempunyai beberapa data pendua dalam medan tertentu pangkalan data 'ujian'. Untuk ini, kami menambah lebih banyak rekod dalam koleksi 'pesanan' pangkalan data 'ujian'. Kali ini, kami memasukkan nilai pendua untuk medan 'Tajuk'. Ia digunakan dalam klausa '$group' untuk membentuk kumpulan nilai unik. Output berikut memaparkan 3 lagi rekod yang baru dimasukkan untuk pangkalan data 'ujian'. Kini, koleksi 'pesanan' mempunyai nilai pendua untuk medan 'Tajuk' berbanding dengan 5 rekod lama. Selebihnya menggunakan yang sama.

Selepas mempunyai sejumlah 8 rekod dalam koleksi 'pesanan' pangkalan data 'ujian', tiba masanya untuk menguji pengendali $min MongoDB selepas aplikasinya pada medan tertentu yang dikumpulkan mengikut medan lain. Perintah agregat yang dilampirkan adalah mengenai perkara ini. Ia bermula dengan kata kunci 'db' diikuti dengan nama koleksi dalam pangkalan data tertentu dan fungsi agregat(). Fungsi agregat bermula dengan penggunaan klausa $kumpulan MongoDB yang digunakan terutamanya di sini untuk memaparkan data dalam kumpulan berkenaan medan 'Tajuk' pangkalan data 'ujian' di mana medan 'Tajuk' diambil sebagai kunci unik .

Pada masa yang sama, medan harga dimulakan secara berasingan yang hanya mengambil rekod nilai minimum daripada jumlah 8 rekod yang sama melalui pengendali '$min' yang digunakan padanya. Output pelaksanaan pertanyaan ini menunjukkan paparan 5 rekod dengan sedikit kemas kini dalam bahagian harga. Anda boleh melihat bahawa tiada rekod berulang dipaparkan. Beberapa rekod nilai unik dan terkecil dipaparkan di sini.

ujian > db.order.agregat ( [ { $kumpulan : { _ID: ' $Title ' , harga: { $min : ' $SalePrice ' } } } ] )

Kesimpulan

Panduan ini ialah koleksi ilustrasi MongoDB untuk memaparkan cara mudah yang mungkin untuk menggunakan pengendali '$min'. Perenggan pengenalan digunakan untuk membincangkan tujuan penggunaannya dalam MongoDB. Bahagian pertama artikel ini membincangkan cara pengendali '$min' berfungsi dan tidak berfungsi untuk satu rekod dalam pangkalan data, iaitu untuk mengemas kini atau memasukkan rekod sebagai nilai minimum. Juga, contoh terakhir menunjukkan penggunaannya untuk mengumpulkan rekod koleksi sebagai unik di seluruh pangkalan data.