다음은 모델의 user
스키마입니다.user.js
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;
이것이 컨트롤러에서 사용하는 방법입니다.
var user = require('./../models/user.js');
이것이 내가 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"});
}
});
오류 -
{"name":"MongoError","code":11000,"err":"insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb.users.$email_1 dup key: { : null }"}
DB 수집을 확인했는데 그러한 중복 항목이 존재하지 않습니다. 내가 뭘 잘못하고 있는지 알려주십시오.
참고 - req.body.email
와 req.body.password
값을 가져 오는 있습니다.
나는 또한이 게시물하지만 도움이 확인 STACK LINK를
완전히 제거하면 문서가 삽입됩니다. 그렇지 않으면 local.email에 항목이 있어도 "중복"오류가 발생합니다.
unique: false
도 아무런 영향을 미치지 않았습니다. 나는 먼저 테이블을 떨어 뜨려야한다는 것을 깨달았습니다. 당신은 같은 것을 할 수 있습니다 db.whateverthecollection.drop({})
. 컬렉션을 삭제합니다.