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.