我必须遵循代码:
var UserSchema = mongoose.Schema({
email: {
type: String,
unique: true
},
username: {
type: String,
unique: true
}
});
var User = db.model('User', UserSchema);
var user = new User();
user.email = 'some@email.com'
user.username = 'peter'
user.save(function(err){
if (err) return console.log(err)
console.log('user saved')
})
在第一次运行时,它显示user saved
完全没问题。在第二次运行时,它给了我
{ [MongoError: E11000 duplicate key error index: node-login.users.$username_1 dup key: { : "peter" }]
name: 'MongoError',
err: 'E11000 duplicate key error index: node-login.users.$username_1 dup key: { : "peter" }',
code: 11000,
n: 0,
lastOp: 0,
connectionId: 1455732,
ok: 1 }
呢email
?它也是重复的,应该返回一个错误。如果每次只抛出一个错误,为什么它是username
而不是email
?在架构email
的上方。username
如何mongoose
决定首先检查/返回哪些重复项?