Benim mongodb koleksiyonumda seyrek ve benzersiz bir dizin oluşturdum.Mongodb benzersiz seyrek dizin
{ "ns" : "MyDB.accounts", "key" : { "email" : 1 }, "name" : "email_1", "unique" : true, "sparse" : true, "background" : true, "safe" : null }
Ama bir anahtarla ikinci bir belge eklerseniz bu hatayı alıyorsunuz seti değil:
var Account = new Schema({
email: { type: String, index: {unique: true, sparse: true} },
....
Bu doğru yaratıldı
{ [MongoError: E11000 duplicate key error index: MyDB.accounts.$email_1 dup key: { : null }]
name: 'MongoError',
err: 'E11000 duplicate key error index: MyDB.accounts.$email_1 dup key: { : null }',
code: 11000,
n: 0,
ok: 1 }
Herhangi bir ipuçları?
E-posta alanı için 'null' olan herhangi bir belge varsa, koleksiyona bakabilirsiniz. Kullanmakta olduğunuz şablon altyapısı, bu alan için boş değer eklemek olabilir. Yerel olarak kontrol ederim, iyi çalışıyor. –
'E-posta'yı' 'benzersiz 'olarak ayarlayarak, koleksiyondaki her belge için benzersiz olması gerekir. Örneğin sadece bir 'null' değeri. Yani, bu beklendiği gibi çalışıyor gibi geliyor. – WiredPrairie
Sadece şu soruya cevap verdik: http://stackoverflow.com/questions/17114851/mongo-id-field-duplicate-key-error/17115770#17115770 - çok benzer (ve muhtemelen aynı) sorun. – WiredPrairie