猫鼬独特索引不起作用
问题描述:
我不希望重复的用户名能够在我的网站上注册。所以,我把这样的事情在猫鼬模型:猫鼬独特索引不起作用
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进程。
答
我终于找到了解决这个问题,我也有
需要
NPM安装猫鼬器唯一验证
HTTP的可能欺骗://计算器。 com/questions/30966146/mongoose-schema-unique-not-being-respected – JohnnyHK
db.user.getIndexes'返回什么?你使用什么版本的猫鼬? –
如果你没有得到重复键错误,那么最明确的是索引不存在。这样做的一个很好的理由是,现有数据已经包含“重复键”,并因此包含索引创建错误。查看[从MongoDB中删除重复](http://*.com/questions/31557053/remove-dups-from-mongodb/31558107#31558107)讨论如何识别和删除。如果'.aggregate()'变得太大(不太可能),那么你总是可以用“upserts”来写另一个集合。 –