Ich habe einen spärlichen und einzigartigen Index auf meiner mongodb Sammlung erstellt.Mongodb einzigartiger spärlicher Index
var Account = new Schema({
email: { type: String, index: {unique: true, sparse: true} },
....
Es wurde korrekt erstellt:
{ "ns" : "MyDB.accounts", "key" : { "email" : 1 }, "name" : "email_1", "unique" : true, "sparse" : true, "background" : true, "safe" : null }
Aber wenn ich ein zweites Dokument mit einem Schlüssel einfügen nicht Satz Ich erhalte diese Fehlermeldung:
{ [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 }
Irgendwelche Hinweise?
können Sie in der Sammlung einchecken, wenn ein Dokument mit dem Feld 'null' für E-Mails vorhanden ist. Es kann vorkommen, dass die von Ihnen verwendete Vorlagen-Engine einen Nullwert für dieses Feld einfügt. Ich überprüfe vor Ort, es funktioniert gut. –
Wenn "email" auf "unique" gesetzt wird, muss es für jedes Dokument in der Sammlung eindeutig sein. Zum Beispiel nur ein "Null" -Wert. Also, das hört sich so an, als ob es wie erwartet funktioniert. – WiredPrairie
Gerade beantwortet diese Frage: http://stackoverflow.com/questions/17114851/mongo-id-field-duplicate-key-error/17115770#17115770 - es ist sehr ähnlich (und wahrscheinlich das gleiche) Problem. – WiredPrairie