Javascript 为什么MongoDB允许创建相同的用户?
我正试图通过Angular应用程序注册一个新用户,但当我使用相同的用户名注册一个用户时,Mongo允许我这样做,因此不会出现错误,之后我可以在db中看到两个同名用户。但我确实将名称字段标记为唯一的 api的一部分:Javascript 为什么MongoDB允许创建相同的用户?,javascript,angularjs,mongodb,Javascript,Angularjs,Mongodb,我正试图通过Angular应用程序注册一个新用户,但当我使用相同的用户名注册一个用户时,Mongo允许我这样做,因此不会出现错误,之后我可以在db中看到两个同名用户。但我确实将名称字段标记为唯一的 api的一部分: apiRoutes.post('/signup', function(req, res) { if (!req.body.userId || !req.body.password) { res.json({success: false, msg: 'Pleas
apiRoutes.post('/signup', function(req, res) {
if (!req.body.userId || !req.body.password) {
res.json({success: false, msg: 'Please pass name and password.'});
} else {
var newUser = new User({
name: req.body.name,
password: req.body.password,
wallet: req.body.wallet,
userPic: req.body.userPic
});
// save the user
newUser.save(function(err) {
if (err) {
return res.json({success: false, msg: 'Username already exists.'});
}
res.json({success: true, msg: 'Successful created new user.'});
});
}
});
型号代码:
// set up a mongoose model
var UserSchema = new Schema({
name: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
},
wallet: {
type: Number,
required: true
},
userPic: {
type: String,
required: true,
unique: true
}
});
和POST请求代码(从外部获取登录名和密码):
在您的模型中尝试:
name: {
type: String,
index:{unique: true},
required: true
}
和:{type:String,unique:true,required:true,dropDups:true}仍然存在相同的问题。出于某种原因,我在这个集合的索引文件夹中只有_idindex。这个对我有帮助。谢谢
name: {
type: String,
index:{unique: true},
required: true
}