Cara menghapus banyak dokumen di kompas mongodb

Di MongoDB, Anda diizinkan untuk menghapus dokumen yang ada dari koleksi menggunakan metode db.collection.deleteMany(). Metode ini menghapus banyak dokumen dari koleksi sesuai dengan filter

deleteMany() adalah metode shell mongo, yang dapat menghapus banyak dokumen. Metode ini dapat digunakan dalam transaksi multi-dokumen. Jika Anda menggunakan metode ini dalam koleksi yang dibatasi, maka itu akan mengeluarkan pengecualian

Sintaksis

db.collection.deleteMany(
    <filter>,
   {
      writeConcern: <document>,
     collation: <document>
   }
)

Parameter

fileter. Parameter pertama dari metode ini. Ini menentukan kriteria pemilihan untuk penghapusan menggunakan operator kueri. Jenis parameter ini adalah dokumen. Jika berisi dokumen kosong, i. e, {}, maka metode ini akan menghapus semua dokumen dari koleksi

Parameter Opsional

  • writeConcern. Ini hanya digunakan ketika Anda tidak ingin menggunakan masalah penulisan default. Jenis parameter ini adalah dokumen
  • pemeriksaan. Ini menentukan penggunaan pemeriksaan untuk operasi. Ini memungkinkan pengguna untuk menentukan aturan khusus bahasa untuk perbandingan string seperti aturan untuk huruf huruf dan tanda aksen. Jenis parameter ini adalah dokumen

Kembali. Metode ini akan mengembalikan dokumen yang berisi boolean yang diakui sebagai benar (jika masalah tulis diaktifkan) atau salah (jika masalah tulis dinonaktifkan) dan deleteCount yang mewakili jumlah total dokumen yang dihapus

Contoh

Dalam contoh berikut, kami bekerja dengan

Database: GeeksforGeeks
Collection: contributor
Document: four documents that contain the details of the contributors in the form of field-value pairs.
_

Cara menghapus banyak dokumen di kompas mongodb

Menghapus dokumen yang cocok dengan filter

Dalam contoh ini, kami menghapus semua dokumen dari kumpulan kontributor dengan mengirimkan dokumen kosong dalam metodedb.collection.deleteMany()

MongoDB adalah database NoSQL paling populer, yang menyimpan data sebagai dokumen. Dokumen pada dasarnya adalah objek JSON dan ada banyak cara untuk menghapusnya. Kami juga dapat menghapus dokumen ini melalui GUI Kompas MongoDB atau Atlas MongoDB. Namun dalam artikel ini, kita akan belajar menghapusnya melalui alat baris perintah Mongo Shell.    

Prasyarat

Kami telah menggunakan Windows 10 dalam tutorial ini. Pastikan Anda telah mengunduh Server Komunitas MongoDB dan menginstalnya. Penyiapannya mudah dan Anda perlu memastikan bahwa Anda telah menambahkannya di variabel Lingkungan di PC Anda

Empat cara

Selanjutnya kita akan belajar tentang empat cara untuk menghapus dokumen MongoDB melalui Mongo Shell. Keempat cara itu adalah -

  • Metode db. koleksi. menghapus()
  • Perintah hapus
  • Metode db. koleksi. hapusSatu()
  • Metode db. koleksi. hapusBanyak()

Setelah kita menginstal mongo shell di sistem kita, kita dapat pergi ke terminal dan mengetik mongo. Jika semuanya baik-baik saja, kami akan masuk ke shell. Selain itu, pastikan Anda memiliki MongoDB yang diinstal secara lokal yang dijalankan melalui perintah Compass atau mongod.  

Di dalam Mongo shell kita bisa melihat semua database menggunakan show databases lalu beralih ke database tempat kita akan bekerja menggunakan perintah use

db. koleksi. hapus() metode

Dengan metode ini, kita dapat menghapus semua dokumen, sebagian dokumen, atau satu dokumen. Kami menentukan parameter di dalamnya dan bergantung padanya, jumlah dokumen akan dihapus.  

Di database employeeDB kami, kami memiliki koleksi bernama karyawan. Kami memiliki 3 catatan dalam koleksi karyawan kami

Kami akan menghapus semua karyawan yang berusia 39 tahun, dengan perintah db. karyawan. hapus({ "umur". 39}). Di sini, hanya satu record yang dihapus, karena hanya satu karyawan yang cocok dengan kriteria.   

Kami juga dapat membatasi penghapusan, hanya satu record dengan menyetel parameter justOne ke true. Dalam metode ini, kami melewatkan objek kosong dan menghapus rekaman pertama

Kami telah menambahkan lagi dua dokumen yang dihapus. Sekarang, kita bisa menghapus semua dokumen menggunakan perintah db. karyawan. menghapus({}).   

Perintah. menghapus

Perintah hapus juga dapat digunakan untuk menghapus dokumen dari koleksi Mongo dB. Secara internal metode hapus juga menggunakan perintah hapus. Sekarang, perintah hapus perlu dijalankan dengan db. runCommand() dan kita perlu meneruskan objek ke sana. Di sini, kunci hapus akan berisi nama koleksi. Dan kunci delete akan berisi larik yang akan memiliki kueri dan juga dapat menetapkan variabel batas.  

Dengan perintah di bawah ini, kami menghapus karyawan yang berusia 38 tahun, dengan membatasi hitungan menjadi satu.  

db.runCommand( 
   { 
      delete: "employees", 
      deletes:  [ { q: { age: 38 }, limit: 1 } ] 
   } 
) 

Jadi, saat kita memberikan perintah ini hanya satu record yang akan dihapus.  

db. koleksi. metode deleteOne()

db. koleksi. metode deleteOne() mirip dengan db. koleksi. remove(), tetapi dengan klausa khusus untuk menghapus satu dokumen saja. Kami melihat contoh db. koleksi. metode remove() sebelumnya, tetapi juga dapat digunakan dalam konfigurasi lain

Tapi db. koleksi. metode deleteOne() dapat digunakan untuk menghapus satu dokumen saja. Kami telah menambahkan beberapa dokumen dalam koleksi karyawan kami.   

Sekarang, di mongo shell jalankan perintah db. karyawan. hapusSatu({ "umur". 39 }) dan akan menghapus karyawan pertama i. e. paragraf.   

Sekarang, Parag karyawan dihapus dari koleksi karyawan kami.   

Kami juga dapat menghapus dokumen pertama dari koleksi, dengan tidak memberikan argumen apa pun. Perintahnya adalah db. karyawan. deleteOne({}), dalam kasus kita. Itu hanya akan menghapus dokumen, yang pertama dalam koleksi.   

Sekarang, karyawan Amit dihapus dari koleksi karyawan, karena berada di bagian atas koleksi kami.   

db. koleksi. metode deleteMany()

db. koleksi. metode deleteMany() hampir mirip dengan metode db. koleksi. remove(), tetapi dengan klausa khusus untuk menghapus banyak dokumen. Kita perlu meneruskan parameter/filter ke itu, dan menghapus dokumen sesuai dengannya. Saat semua dokumen cocok dengan filter dari koleksi, semua dokumen akan dihapus. Dengan db. koleksi. metode deleteOne() kita hanya dapat menghapus satu dokumen, meskipun kriteria cocok untuk banyak dokumen.  

Namun kami tidak memiliki batasan seperti itu di db. koleksi. metode deleteMany(). Infact kita juga bisa menghapus semua dokumen dalam koleksi. Kita akan melihat contoh keduanya selanjutnya.  

Kami telah menambahkan dokumen lagi di koleksi karyawan kami, melalui MongoDB Compass di instance MongoDB yang diinstal secara lokal. Perhatikan, bahwa kami memiliki tiga karyawan dengan usia lebih dari 38.  

Sekarang, kami ingin menghapus dokumen semua karyawan dengan usia lebih dari 38 tahun. Untuk itu kita akan menggunakan perintah db. karyawan. hapusBanyak({ "umur". { $gt. 38 } }) dan itu akan menghapus tiga karyawan dari koleksi kami.   

Sekarang, ketika kami memeriksa koleksi karyawan di kompas MongoDB, kami melihat tiga karyawan berusia 39 tahun dihapus dari koleksi.  

Nah, untuk menghapus semua dokumen dari koleksi kita gunakan perintah db. karyawan. deleteMany({}) dan itu akan menghapus sisa dua karyawan dari koleksi karyawan kami

Sekarang, koleksi karyawan kami tidak memiliki dokumen.   

Menghapus melalui Kompas MongoDB

Kami juga dapat menghapus dokumen, menggunakan alat gratis MongoDB Compass yang mengagumkan. Untuk menginstal kompas MongoDB, cukup buka https. // www. mongodb. com/ dan arahkan kursor ke Produk lalu di Alat, klik Kompas.  

Di halaman berikutnya, cukup klik tombol Unduh Sekarang dan itu akan membawa kita ke halaman berikutnya.   

Di sini, kita harus mengklik lagi kompas MongoDB dan mengunduh file zip. Kami hanya perlu menginstalnya setelah mengekstrak file zip.  

Setelah kompas diinstal, cukup buka dan klik tombol Hubungkan dan itu akan menghubungkan kita ke instance MongoDB yang diinstal secara lokal. Perhatikan bahwa kita juga dapat memberikan string koneksi dari database MongoDB berbasis cloud, seperti MongoDB Atlas di dalamnya

Kami sudah membuat beberapa database. Namun saat Anda memulai MongoDB untuk pertama kali, Anda hanya akan melihat database admin. Kita akan masuk ke dalam database bernama employeeDB, dengan mengkliknya.   

Di sini, kami memiliki koleksi karyawan dan di dalamnya kami memiliki empat dokumen. Cukup klik pada koleksi.   

Ini akan menunjukkan kepada kita empat dokumen. Sekarang arahkan kursor ke dokumen yang ingin Anda hapus dan empat tombol kecil akan muncul. Sekarang, klik ikon hapus.   

Itu akan meminta persetujuan kami untuk menghapus dokumen. Cukup klik pada tombol Hapus.   

Dan dokumen karyawan bernama Parag akan dihapus.   

Masalah Atomisitas

Atomicity adalah bagian dari properti ACID dalam database. Sekarang, ACID berarti Atomicity, Consistency, Isolation, dan Durability. Semua basis data Relasional tradisional seperti Oracle, MySQL pada dasarnya bersifat ASAM. Atomicity adalah properti paling penting dalam ACID dan artinya, jika ada serangkaian operasi basis data, maka semuanya akan terjadi atau tidak terjadi apa-apa.

MongoDB dan database NoSQL lainnya tidak pernah didesain untuk properti ACID. MongoDB dibuat khusus dengan skalabilitas. Jadi, jika kita memiliki pernyataan lepas, perbarui pernyataan, atau pernyataan hapus di MongoDB, pernyataan tersebut dijamin atomik hanya pada tingkat dokumen tunggal. Operasi ini juga disebut operasi tulis, dan hanya bersifat atomik pada satu tingkat dokumen.  

Sekarang, jika satu dokumen kita berisi beberapa sub-dokumen, itu masih dijamin sebagai atomik dan jika gagal, rollback otomatis akan terjadi, seperti di database relasional. Tapi, jika operasi tulis menyangkut banyak dokumen, itu tidak dijamin di MongoDB

Sekarang, kita telah melihat db. koleksi. metode deleteMany() sebelumnya dengan parameter filter. Tapi itu juga bisa memiliki dua parameter lain. Sintaks lengkap db. koleksi. metode deleteMany() adalah seperti di bawah ini.  

db.collection.deleteMany( 
   , 
   { 
      writeConcern: , 
      collation:  
   } 
) 

Di sini, kita dapat memberikan writeConcern dan juga collation.  writeConcern adalah sesuatu yang kami khawatirkan, karena terkait dengan operasi tulis dan atomisitas.   

writeConcern merupakan parameter opsional, berupa dokumen yang menyatakan masalah tulis untuk digunakan jika lebih besar dari mayoritas. Kekhawatiran menulis dapat mencakup bidang-bidang berikut.  

{w. , j. , waktu habis. }

  • Opsi w adalah untuk meminta pengakuan, bahwa operasi tulis telah diteruskan ke sejumlah instance mongod yang ditentukan.  
  • Pilihan j adalah untuk meminta pengakuan, bahwa operasi tulis telah ditulis ke jurnal disk
  • opsi wtimeout adalah untuk menentukan batas waktu, untuk mencegah operasi tulis memblokir tanpa batas.  

Dengan menggunakan opsi w, yang berikut ini tersedia.  

  • w. 1 – Meminta konfirmasi bahwa masalah tulis telah diteruskan ke instance mongod tunggal. Ini juga merupakan opsi default.  
  • w. 0 – Tidak meminta pengakuan operasi tulis.  
  • w. “mayoritas” – Meminta konfirmasi bahwa operasi tulis telah diteruskan ke sebagian besar server primer dan sekunder.  

Sekarang, kita akan melihat nilai j opsi.  

  • j. benar – Ini meminta pengakuan bahwa contoh mongod yang berbeda, yang disebutkan dalam w. , telah menulis ke jurnal di disk.  

Opsi wtimeout menentukan batas waktu dalam milidetik, untuk masalah tulis. Ini menyebabkan operasi tulis kembali dengan kesalahan setelah batas yang ditentukan.  

Mengelola Database dengan Hapus

Untuk menjaga database tetap bersih dan dapat dikelola, menghapus dan menghapus file adalah tugas penting. Dalam postingan ini, kami telah menjelajahi berbagai cara untuk menghapus dokumen di database MongoDB. Semua metode ini bekerja untuk tujuan yang berbeda dan dalam skenario yang berbeda. Kita pertama-tama mempelajari tentang empat cara berbeda, untuk menghapus dokumen dari koleksi MongoDB melalui antarmuka baris perintah Mongo shell. Kemudian kami mengetahui cara menghapus dokumen melalui antarmuka pengguna grafis MongoDB Compass gratis yang keren.  

Terakhir, kami telah mempelajari tentang masalah atomisitas saat menghapus dokumen dan terutama beberapa dokumen. Kita juga telah mempelajari opsi writeConcern di db. koleksi. metode deleteMany().  

Bagaimana cara menghapus banyak dokumen di MongoDB?

Shell MongoDB menyediakan metode berikut untuk menghapus dokumen dari koleksi. .
Untuk menghapus banyak dokumen, gunakan db. koleksi. hapusBanyak()
Untuk menghapus satu dokumen, gunakan db. koleksi. hapusSatu()

Bagaimana cara menghapus semua dokumen dari koleksi di Kompas MongoDB?

Untuk menghapus semua dokumen dari koleksi, teruskan dokumen filter kosong {} ke db. koleksi. deleteMany() metode . Metode mengembalikan dokumen dengan status operasi.

Bagaimana cara menghapus banyak dokumen di luwak MongoDB?

Anda dapat menghapus banyak dokumen dalam satu koleksi sekaligus menggunakan koleksi. deleteMany() metode . Meneruskan dokumen kueri ke metode deleteMany() untuk menentukan subkumpulan dokumen dalam koleksi yang akan dihapus.

Bagaimana cara memperbarui banyak dokumen di kompas MongoDB?

Di MongoDB, Anda dapat memperbarui banyak dokumen dalam koleksi menggunakan db. .
metode updateMany() dapat digunakan dalam transaksi multi-dokumen
Saat Anda memperbarui dokumen, nilai bidang _id tidak berubah
Itu juga menambahkan bidang baru dalam dokumen