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

E11000 duplikat indeks kesalahan kunci di mongodb luwak

Pesan kesalahan mengatakan bahwa sudah ada catatan dengan null sebagai email. Dengan kata lain, Anda sudah memiliki pengguna tanpa alamat email.

Dokumentasi yang relevan untuk ini:

Jika dokumen tidak memiliki nilai untuk bidang yang diindeks dalam indeks unik, indeks akan menyimpan nilai nol untuk dokumen ini. Karena kendala unik, MongoDB hanya akan mengizinkan satu dokumen yang tidak memiliki bidang yang diindeks. Jika ada lebih dari satu dokumen tanpa nilai untuk bidang yang diindeks atau bidang yang diindeks tidak ada, pembuatan indeks akan gagal dengan kesalahan kunci duplikat.

Anda dapat menggabungkan batasan unik dengan indeks sparse untuk memfilter nilai nol ini dari indeks unik dan menghindari kesalahan.

indeks unik

Indeks jarang hanya berisi entri untuk dokumen yang memiliki bidang yang diindeks, meskipun bidang indeks berisi nilai nol.

Dengan kata lain, indeks sparse tidak masalah dengan banyak dokumen yang semuanya memiliki null nilai.

indeks jarang

Dari komentar:

Kesalahan Anda mengatakan bahwa kuncinya bernama mydb.users.$email_1 yang membuat saya curiga bahwa Anda memiliki indeks di kedua users.email dan users.local.email (Yang pertama sudah tua dan tidak terpakai saat ini). Menghapus bidang dari model Mongoose tidak memengaruhi database. Periksa dengan mydb.users.getIndexes() jika ini masalahnya dan hapus secara manual indeks yang tidak diinginkan dengan mydb.users.dropIndex(<name>) .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $keDesimal

  2. Bagaimana cara kerja pengurutan dengan indeks di MongoDB?

  3. mongodb:kueri untuk periode waktu antara dua bidang tanggal

  4. mendorong objek ke dalam skema array di Mongoose

  5. Spring Boot dan bagaimana cara mengonfigurasi detail koneksi ke MongoDB?