Anda awalnya memiliki bidang bernama name
di skema Anda, yang disetel ke unique
.
Bagaimana aku tahu? Karena kesalahan memberi tahu saya demikian:
duplicate key error index: **iotdb.users.$name_1**
Anda mengganti nama bidang menjadi username
, tetapi tidak menghapus file index. Secara default, MongoDB akan menetapkan nilai bidang yang tidak ada menjadi null
dalam hal ini.
Dokumentasi yang relevan di sini:
Jika dokumen tidak memiliki nilai untuk bidang yang diindeks dalam indeks unik, indeks akan menyimpan nilai nol untuk dokumen ini. Karena batasan unik, MongoDB hanya akan mengizinkan satu dokumen yang tidak memiliki bidang yang diindeks.
Untuk mengatasi ini, Anda perlu menghapus indeks untuk name
yang diganti namanya lapangan.