Hapus catatan dari mongodb

Metode deleteMany() mengembalikan objek yang berisi informasi tentang bagaimana eksekusi memengaruhi database

Sebagian besar informasi tidak penting untuk dipahami, tetapi satu objek di dalam objek disebut "hasil" yang memberi tahu kita jika eksekusi berjalan baik, dan berapa banyak dokumen yang terpengaruh

Setelah membuat pembaruan dokumen, mungkin terjadi situasi di mana Anda ingin menghapus dokumen apa pun atau sekumpulan dokumen. MongoDB juga memungkinkan Anda untuk menghapus dokumen tertentu atau beberapa kumpulan dokumen. Dalam bab ini, Anda akan belajar tentang cara menghapus dokumen dari database MongoDB

Menghapus Dokumen di MongoDB

MongoDB memungkinkan Anda untuk menghapus dokumen atau dokumen secara kolektif menggunakan salah satu dari tiga metodenya. Tiga metode yang disediakan oleh MongoDB untuk menghapus dokumen adalah

  1. db. koleksi. hapusSatu()
  2. db. koleksi. menghapus()
  3. db. koleksi. hapusBanyak()

db. koleksi. metode deleteOne()

Metode ini digunakan untuk menghapus satu dokumen saja, meskipun ada lebih dari satu dokumen yang sesuai dengan kriteria. Berikut adalah contoh penggunaan db ini. koleksi. metode deleteOne() untuk menghapus satu dokumen. Untuk melakukan proses ini di sini, kami telah membuat database dan menyimpan semua data secara terpisah

Contoh

db.programmers.insert(
[
  { name: "James Gosling" },
  { name: "Dennis Ritchie" },
  { name: "Bjarne Stroustrup" }
]
)

Setelah proses penyisipan selesai, Anda dapat menjalankan kueri (disebutkan di bawah) untuk mengembalikan beberapa hasil

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().  

Apa itu perintah hapus di MongoDB?

Perintah hapus menghapus dokumen dari koleksi . Satu perintah hapus dapat berisi beberapa spesifikasi hapus. Perintah tidak dapat beroperasi pada koleksi yang dibatasi. Metode penghapusan yang disediakan oleh driver MongoDB menggunakan perintah ini secara internal.

Bagaimana cara menghapus semua catatan di MongoDB?

Untuk menghapus semua dokumen dalam koleksi, berikan dokumen kosong ( {} ) . Opsional. Untuk membatasi penghapusan hanya pada satu dokumen, setel ke true. Abaikan untuk menggunakan nilai default false dan hapus semua dokumen yang cocok dengan kriteria penghapusan.

Bagaimana cara menghapus catatan di kompas MongoDB?

Untuk menghapus dokumen, arahkan kursor ke atas dokumen dan klik ikon . Setelah Anda mengonfirmasi, Kompas menghapus dokumen dari koleksi.

Bagaimana Anda menghapus catatan di MongoDB Java?

Anda dapat menghapus satu dokumen dari koleksi menggunakan metode deleteOne() pada objek MongoCollection . Metode ini menerima filter kueri yang cocok dengan dokumen yang ingin Anda hapus. Jika Anda tidak menentukan filter, MongoDB cocok dengan dokumen pertama dalam koleksi.