以下是我的user.js
模型中的user
架构 -
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');
这是我将其保存在数据库中的方式 -
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 }"}
我检查了数据库集合,没有这样的重复条目,请告诉我我做错了什么?
FYI - req.body.email
和 req.body.password
正在获取值。
我还查看了这篇帖子,但没有帮助:STACK LINK
如果我完全删除它,那么它会插入文档,否则它会抛出“重复”错误,即使我在本地邮件中已经有一个条目。
unique: false
没有任何影响。我意识到我首先需要删除表格,然后它才能正常工作。你可以执行类似于db.whateverthecollection.drop({})
的操作。请注意,这会删除整个集合。 - Pere