次のコードが必要です。
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
、どちらが完全に問題ないかが示されます。2回目の実行で、それは私に与えます
{ [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
ですか?これも重複しているため、エラーが返されます。毎回 1 つのエラーのみがスローされる場合、それが であり、username
ではないのはなぜemail
ですか? スキーマのemail
上にあります。username
どのmongoose
重複を最初にチェック/返すかをどのように決定しますか?