Мангуст: расширяющиеся схемы

В настоящее время у меня есть две почти идентичные схемы:

var userSchema = mongoose.Schema({

    email: {type: String, unique: true, required: true, validate: emailValidator},
    passwordHash: {type: String, required: true},

    firstname: {type: String, validate: firstnameValidator},
    lastname: {type: String, validate: lastnameValidator},
    phone: {type: String, validate: phoneValidator},

});

А также

var adminSchema = mongoose.Schema({

    email: {type: String, unique: true, required: true, validate: emailValidator},
    passwordHash: {type: String, required: true},

    firstname: {type: String, validate: firstnameValidator, required: true},
    lastname: {type: String, validate: lastnameValidator, required: true},
    phone: {type: String, validate: phoneValidator, required: true},

});

Их единственное отличие заключается в валидации: пользователям не нужны имя, фамилия или телефон. Администраторы, однако, должны иметь эти свойства определены.

К сожалению, приведенный выше код не очень сухой, так как онипочти идентичны. Поэтому мне интересно, возможно ли построитьadminSchema на основеuserSchema, Например.:

var adminSchema = mongoose.Schema(userSchema);
adminSchema.change('firstname', {required: true});
adminSchema.change('lastname', {required: true});
adminSchema.change('phone', {required: true});

Очевидно, чтопросто псевдокод. Возможно ли что-то подобное?

Еще один очень похожий вопрос: возможно ли создать новую схему на основе другой и добавить к ней еще несколько свойств. Например:

var adminSchema = mongoose.Schema(userSchema);
    adminSchema.add(adminPower: Number);

Ответы на вопрос(8)

Ваш ответ на вопрос