Di MongoDB, jika Anda perlu menghapus dokumen di shell mongo, Anda dapat menggunakan:
db.collection.remove()
metode- Yang
delete
perintah - The
db.collection.deleteOne()
metode db.collection.deleteMany()
metode
Artikel ini memberikan contoh masing-masing.
The db.collection.remove()
Metode
db.collection.remove()
metode menghapus (yaitu menghapus) dokumen dari koleksi. Anda dapat menghapus semua dokumen, beberapa dokumen, atau satu dokumen sesuai kebutuhan.
Berikut ini contoh menghapus dokumen tertentu.
db.employees.remove({ "_id": 3 })
Hasil:
WriteResult({ "nRemoved" : 1 })
Itu menghapus dokumen dengan _id
nilai 3
dari employees
koleksi.
Itu tidak harus cocok dengan satu dokumen. Kriteria filter dapat mencocokkan beberapa dokumen, dan Anda bahkan dapat mengosongkan kriteria filter untuk mencocokkan semua dokumen (yaitu menghapus semua dokumen).
Berikut ini contoh menghapus semua dokumen:
db.employees.remove({})
Hasil:
WriteResult({ "nRemoved" : 5 })
Hasilnya menunjukkan kepada kita bahwa lima dokumen telah dihapus (jadi koleksi tersebut jelas berisi lima dokumen sebelum kita menghapus semuanya).
remove()
metode juga menerima justOne
parameter untuk membatasi penghapusan hanya satu dokumen. Ini akan menghapus dokumen pertama yang cocok dengan kriteria penghapusan.
Contoh:
db.employees.remove({}, "justOne: true")
Hasil:
WriteResult({ "nRemoved" : 1 })
Dalam hal ini, kriteria filter kami adalah dokumen kosong, sehingga cocok dengan semua dokumen dalam koleksi. Namun, hanya satu dokumen yang dihapus, karena kami menggunakan justOne: true
.
Yang delete
Perintah
delete
perintah melakukan hal yang persis sama dengan remove()
metode. Faktanya, remove()
metode menggunakan perintah hapus.
Berikut adalah contoh menghapus dokumen tertentu dengan delete
perintah.
db.runCommand(
{
delete: "employees",
deletes: [ { q: { _id: 4 }, limit: 1 } ]
}
)
Hasil:
{ "n" : 1, "ok" : 1 }
The db.collection.deleteOne()
Metode
db.collection.deleteOne()
metode ini mirip dengan db.collection.remove()
metode, kecuali hanya menghapus satu dokumen dari koleksi yang ditentukan.
Ia menerima kondisi filter, seperti db.collection.remove()
.
Contoh:
db.employees.deleteOne({ "_id": 4 })
Hasil:
{ "acknowledged" : true, "deletedCount" : 1 }
Ini menghapus nomor karyawan 4.
Jika Anda memberikan filter yang lebih luas yang mengembalikan banyak dokumen, itu hanya akan menghapus yang pertama.
Misalnya, berikut ini menghapus dokumen pertama dalam koleksi, terlepas dari berapa banyak dokumen dalam koleksi:
db.employees.deleteOne({})
db.collection.deleteOne()
metode ini dapat menjadi metode yang berguna untuk digunakan jika Anda khawatir akan menghapus banyak dokumen secara tidak sengaja. Dokumen terbanyak yang akan dihapus adalah satu, jadi jika Anda membuat kesalahan "jari gemuk", Anda tidak akan secara tidak sengaja menghapus semua dokumen dari koleksi (kecuali tentu saja hanya ada satu dokumen dalam koleksi).
The db.collection.deleteMany()
Metode
db.collection.deleteMany()
metode ini mirip dengan db.collection.deleteOne()
kecuali bahwa itu dapat menghapus banyak dokumen.
Sebenarnya, ini mungkin lebih seperti remove()
, karena dapat menghapus banyak dokumen dan satu dokumen (walaupun tidak memiliki justOne
parameter seperti remove()
tidak).
Metode ini berguna jika Anda ingin menghapus semua dokumen yang cocok dengan kriteria tertentu.
Contoh:
db.employees.deleteMany({ "salary": { $gt: 80000 } })
Hasil:
{ "acknowledged" : true, "deletedCount" : 2 }
Ini menghapus semua dokumen yang memiliki salary
field lebih dari 80000. Dalam hal ini hanya dua dokumen yang cocok, tapi bisa saja nomor berapa saja.
Anda juga dapat menggunakan db.collection.deleteMany()
untuk menghapus semua dokumen dari koleksi.
Contoh:
db.employees.deleteMany({})
Hasil:
{ "acknowledged" : true, "deletedCount" : 5 }
Dalam hal ini ada lima dokumen dalam koleksi dan kelimanya telah dihapus.
Informasi Lebih Lanjut
Metode di atas juga menerima sejumlah argumen opsional, seperti writeConcern
dan collation
.
deleteOne()
dan deleteMany()
juga menerima hint
argumen.
Di bawah ini adalah tautan ke dokumentasi MongoDB untuk setiap metode/perintah:
db.collection.remove()
delete
db.collection.deleteOne()
db.collection.deleteMany()