MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

4 Cara Menghapus Dokumen di MongoDB

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ScaleGrid Mengumumkan Layanan Hosting MongoDB di Kanada

  2. Perbedaan antara Temukan dan FindAsync

  3. Mongo cara $lookup dengan DBRef

  4. Praktik Terbaik untuk Menjalankan MongoDB dalam Cluster

  5. Bagaimana cara menggunakan variabel di MongoDB Map-reduce map function