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