Di seguito è riportato il mio user
schema nel user.js
modello -
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;
Ecco come lo sto usando nel mio controller -
var user = require('./../models/user.js');
Ecco come lo sto salvando nel db -
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"});
}
});
Errore -
{"name":"MongoError","code":11000,"err":"insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb.users.$email_1 dup key: { : null }"}
Ho controllato la raccolta di db e non esiste una voce così duplicata, fammi sapere cosa sto facendo di sbagliato?
Cordiali saluti - req.body.email
e req.body.password
stanno recuperando valori.
Ho anche controllato questo post ma nessun aiuto STACK LINK
Se l'ho rimosso completamente, inserisce il documento, altrimenti genera l'errore "Duplica" anche se ho una voce in local.email
unique: false
non ha avuto alcun impatto. Mi sono reso conto che prima dovevo abbandonare il tavolo e poi avrebbe funzionato. Puoi fare qualcosa come db.whateverthecollection.drop({})
. Fai attenzione, elimina la raccolta.