我有以下用户架构:
var userSchema = new Schema({
username: {
type: String,
validate: usernameValidator,
unique: true,
required: true
},
password: {
type: String,
required: true
}
});
其中usernameValidator
只是检查最大长度。
对于用户名,我设置了unique: true
。但是,如果我运行一个测试脚本,用户名'test'插入用户,那么每次运行脚本时都会插入它。这是测试脚本:
var user = new User({
username: 'test',
password: 'password',
});
user.save();
为什么会这样?如何应用唯一性约束?
修改
db.users.getIndexes()
的输出是:
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "dbName.users",
"name" : "_id_"
}
]