0
不工作我有一个架构设置是这样的:唯一索引猫鼬架构
var UserSchema = new Schema({
id: {type: String, required: true, unique: true, index: true, default: mongoose.Types.ObjectId},
name: { type: String, required: true },
email: { type: String, required: true, unique: true, index: true },
mobile: { type: String, unique: true, sparse: true },
password: { type: String, required: true }
});
似乎工作除了电子邮件场伟大在重复让,尽管有unique:true
集。我做到以下几点:
User.create({
name: req.body.name,
email: req.body.email,
mobile: req.body.mobile,
password: password
}, function(err, user) {
if (err) return res.send({ invalid : true });
});
如果req.body.email
是这是已经在数据库中的值,上面的查询应返回err
。但事实并非如此,它会使新用户完美无缺,从而导致数据库中的电子邮件重复。
这是怎么发生的?
试试这个:email:{type:String,required:true,index:{unique:true}} –
@RaxWunter不幸的是没有工作。似乎整个数据库都忽略了唯一的字段。 – Coop
添加'User.on('index',function(err){console.log(err);});'查看是否有错误导致索引无法创建。另外,如果以前在'email'上存在非唯一索引,则需要手动将其删除,以便将其重新创建为唯一索引。 – JohnnyHK