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

Bagaimana cara menghapus duplikat berdasarkan kunci di Mongodb?

Jawaban ini sudah usang : dropDups opsi telah dihapus di MongoDB 3.0, jadi pendekatan yang berbeda akan diperlukan dalam banyak kasus. Misalnya, Anda dapat menggunakan agregasi seperti yang disarankan pada:MongoDB menduplikasi dokumen bahkan setelah menambahkan kunci unik.

Jika Anda yakin bahwa source_references.key mengidentifikasi catatan duplikat, Anda dapat memastikan indeks unik dengan dropDups:true opsi pembuatan indeks di MongoDB 2.6 atau lebih lama:

db.things.ensureIndex({'source_references.key' : 1}, {unique : true, dropDups : true})

Ini akan menyimpan dokumen unik pertama untuk setiap source_references.key nilai, dan hapus dokumen berikutnya yang akan menyebabkan pelanggaran kunci duplikat.

Catatan Penting :Dokumen apa pun yang tidak memiliki source_references.key bidang akan dianggap memiliki null nilai, sehingga dokumen berikutnya yang tidak memiliki bidang kunci akan dihapus. Anda dapat menambahkan sparse:true opsi pembuatan indeks sehingga indeks hanya berlaku untuk dokumen dengan source_references.key lapangan.

Jelas hati-hati :Ambil cadangan database Anda, dan coba ini di lingkungan staging terlebih dahulu jika Anda khawatir tentang kehilangan data yang tidak diinginkan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Mengurutkan Hasil Kueri

  2. Cara menghapus konsol di MongoDB

  3. Bagaimana cara menangani migrasi skema luwak dengan benar?

  4. Bisakah kerangka agregasi MongoDB $group mengembalikan array nilai?

  5. MongoDB:periksa koneksi ke DB