El siguiente es mi useresquema en el user.jsmodelo:
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;
Así es como lo estoy usando en mi controlador:
var user = require('./../models/user.js');
Así es como lo estoy guardando en la base de datos:
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"});
}
});
error -
{"name":"MongoError","code":11000,"err":"insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb.users.$email_1 dup key: { : null }"}
Verifiqué la colección de db y no existe tal entrada duplicada, ¿me avisas qué estoy haciendo mal?
FYI - req.body.emaily req.body.passwordestán obteniendo valores.
También revisé esta publicación pero no ayudé STACK LINK
Si eliminé completamente, entonces inserta el documento, de lo contrario arroja el error "Duplicar" incluso si tengo una entrada en el correo electrónico local.
unique: falseno estaba teniendo ningún impacto. Me di cuenta de que primero tenía que dejar caer la mesa y luego funcionaría. Puedes hacer algo como db.whateverthecollection.drop({}). Tenga cuidado, elimina la colección.
