Mongoose unique validation error type

mongodb, mongoose, node.js

Solution

I prefer putting it in path validation mechanisms, like

UserSchema.path('email').validate(function(value, done) {
    this.model('User').count({ email: value }, function(err, count) {
        if (err) {
            return done(err);
        } 
        // If `count` is greater than zero, "invalidate"
        done(!count);
    });
}, 'Email already exists');

Then it'll just get wrapped into `ValidationError` and will return as first argument when you call `validate` or `save` .

Problem

I'm using this schema with `mongoose 3.0.3` from npm: ``` var schema = new Schema({ _id: Schema.ObjectId, email: {type: String, required: true, unique: true} }); ``` If I try to save a email that is already in db, I expect to get a `ValidationError` like if a `required` field is omitted. However this is not the case, I get a `MongoError: E11000 duplicate key error index`. Which is not a validation error (happens even if I remove the unique:true). Any idea why?

Original source

Related problems