Es folgt mein user
Schema im user.js
Modell -
var userSchema = new mongoose.Schema({
local: {
name: { type: String },
email : { type: String, require: true, unique: true },
password: { type: String, require:true },
},
facebook: {
id : { type: String },
token : { type: String },
email : { type: String },
name : { type: String }
}
});
var User = mongoose.model('User',userSchema);
module.exports = User;
So verwende ich es in meinem Controller -
var user = require('./../models/user.js');
So speichere ich es in der Datenbank -
user({'local.email' : req.body.email, 'local.password' : req.body.password}).save(function(err, result){
if(err)
res.send(err);
else {
console.log(result);
req.session.user = result;
res.send({"code":200,"message":"Record inserted successfully"});
}
});
Fehler -
{"name":"MongoError","code":11000,"err":"insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb.users.$email_1 dup key: { : null }"}
Ich habe die DB-Sammlung überprüft und es gibt keinen solchen doppelten Eintrag. Lassen Sie mich wissen, was ich falsch mache.
FYI - req.body.email
und req.body.password
holen Werte.
Ich habe auch diesen Beitrag überprüft, aber keine Hilfe STACK LINK
Wenn ich es vollständig entfernt habe, wird das Dokument eingefügt, andernfalls wird der Fehler "Duplizieren" ausgegeben, selbst wenn ich einen Eintrag in der local.email habe
unique: false
hatte keine Auswirkungen. Mir wurde klar, dass ich zuerst den Tisch fallen lassen musste und dann würde es funktionieren. Sie können wie etwas tun db.whateverthecollection.drop({})
. Seien Sie vorsichtig, es löscht die Sammlung.