1
我不希望重複的用戶名能夠在我的網站上註冊。所以,我把這樣的事情在貓鼬模型:貓鼬獨特索引不起作用
var userSchema = new mongoose.Schema({
username: { type: String, index: { unique: true }},
password: String
});
但是,當我在create
像下面的控制器的新用戶,它不會拋出異常,並創建一個副本。
mongoose.model('User').create({
username : email,
password : password
}, function(err, user) {
if (err) {
// WHY DOES IT NOT THROW ERROR AND GET HERE?
}
});
我已經嘗試重新啓動我的應用程序和mongod進程。
HTTP的可能欺騙://計算器。 com/questions/30966146/mongoose-schema-unique-not-being-respected – JohnnyHK
db.user.getIndexes'返回什麼?你使用什麼版本的貓鼬? –
如果你沒有得到重複鍵錯誤,那麼最明確的是索引不存在。這樣做的一個很好的理由是,現有數據已經包含「重複鍵」,並因此包含索引創建錯誤。查看[從MongoDB中刪除重複](http://stackoverflow.com/questions/31557053/remove-dups-from-mongodb/31558107#31558107)討論如何識別和刪除。如果'.aggregate()'變得太大(不太可能),那麼你總是可以用「upserts」來寫另一個集合。 –