MongoDB kemungkinan melakukan ini untuk mempertahankan diri. Jika Anda dropDups
di bidang yang salah, Anda dapat menyiram seluruh kumpulan data dan mengunci DB dengan operasi penghapusan (yang "semahal" penulisan).
Jadi pertanyaan pertama adalah mengapa Anda membuat indeks unik di id
lapangan?
MongoDB membuat _id
default bidang yang secara otomatis unik dan diindeks. Secara default MongoDB mengisi _id
dengan ObjectId
, namun, Anda dapat menggantinya dengan nilai apa pun yang Anda suka. Jadi, jika Anda telah menyiapkan serangkaian nilai ID, Anda dapat menggunakannya .
Jika Anda tidak dapat mengimpor ulang nilai, salin nilai tersebut ke koleksi baru sambil mengubah id
ke dalam _id
. Anda kemudian dapat membuang koleksi lama dan mengganti nama yang baru. (perhatikan bahwa Anda akan mendapatkan banyak "kesalahan kunci duplikat", pastikan kode Anda menangkap dan mengabaikannya )