Di MongoDB, Anda dapat menghapus dokumen menggunakan salah satu dari tiga metode.
MongoDB menyediakan tiga metode untuk menghapus dokumen:
db.collection.deleteOne()
db.collection.deleteMany()
db.collection.remove()
The db.collection.deleteOne()
Metode
db.collection.deleteOne()
hanya menghapus satu dokumen, bahkan jika lebih dari satu dokumen cocok dengan kriteria.
Berikut ini contoh db.collection.deleteOne()
metode untuk menghapus satu dokumen.
Pertama, mari kita jalankan kueri yang mengembalikan banyak hasil:
db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Hasil:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014d"), "artistname" : "The Kooks" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
Oke, jadi kita tahu ada tiga dokumen yang cocok dengan kriteria itu.
Sekarang mari kita gunakan kriteria pemfilteran yang sama persis untuk db.collection.deleteOne()
kita metode:
db.artists.deleteOne( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Pesan yang dihasilkan:
{ "acknowledged" : true, "deletedCount" : 1 }
Jadi hanya satu dokumen yang dihapus, padahal tiga dokumen memenuhi kriteria.
Mari kita jalankan find()
kueri lagi untuk melihat dokumen mana yang tersisa:
db.artists.find( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Hasil:
{ "_id" : ObjectId("5781d7f248ef8c6b3ffb014e"), "artistname" : "Bastille" } { "_id" : ObjectId("5781d7f248ef8c6b3ffb014f"), "artistname" : "Gang of Four" }
The db.collection.deleteMany()
Metode
db.collection.deleteMany()
metode menghapus semua dokumen yang cocok dengan kriteria.
Jadi mari kita jalankan db.collection.deleteMany()
metode dengan kriteria yang sama persis seperti contoh kita sebelumnya. Ingat, dua catatan tersisa. Mari kita lihat apakah db.collection.deleteMany()
menghapus keduanya:
db.artists.deleteMany( { artistname: { $in: [ "The Kooks", "Gang of Four", "Bastille" ] } } )
Pesan yang dihasilkan:
{ "acknowledged" : true, "deletedCount" : 2 }
Jadi dua catatan yang tersisa telah dihapus.
The db.collection.remove()
Metode
db.collection.remove()
metode menghapus satu dokumen atau semua dokumen yang cocok dengan kriteria yang ditentukan.
Di sini, kami menghapus semua dokumen dengan nama artis "AC/DC".
db.artists.remove( { artistname: "AC/DC" } )
Hasil:
WriteResult({ "nRemoved" : 1 })
Dalam hal ini, hanya ada satu AC/DC :)
justOne
Opsi
Anda dapat menggunakan justOne
parameter untuk membatasi operasi penghapusan hanya pada satu dokumen (seperti menggunakan db.collection.deleteOne()
).
Ini contohnya.
Pertama, mari kita jalankan kueri yang mengembalikan banyak dokumen:
db.musicians.find( { born: { $lt: 1950 } } )
Hasil:
{ "_id" : 2, "name" : "Ian Paice", "instrument" : "Drums", "born" : 1948 } { "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 } { "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
Sekarang kita akan menghapus salah satu record tersebut menggunakan justOne
pilihan. Sekali lagi, kami akan menggunakan kriteria pemfilteran yang sama persis:
db.musicians.remove( { born: { $lt: 1950 } }, { justOne: 1 } )
Pesan yang dihasilkan:
WriteResult({ "nRemoved" : 1 })
Sekarang mari kita jalankan kueri yang sama untuk melihat dokumen mana yang tersisa:
db.musicians.find( { born: { $lt: 1950 } } )
Hasil:
{ "_id" : 3, "name" : "Roger Glover", "instrument" : "Bass", "born" : 1945 } { "_id" : 5, "name" : "Don Airey", "instrument" : "Keyboards", "born" : 1948 }
Menghapus semua Dokumen dalam Koleksi
Anda dapat menghapus semua dokumen dalam koleksi hanya dengan menghilangkan kriteria pemfilteran apa pun.
Mari kita hapus semua dokumen di artis koleksi:
db.artists.remove( {} )
Pesan yang dihasilkan:
WriteResult({ "nRemoved" : 8 })
Jika Anda menerima Error:remove need a query kesalahan, periksa apakah Anda tidak lupa menyertakan kurung kurawal. Anda tetap harus menyertakan ini.