Подтвердить что ты не робот

Необязательные поля схемы Mongoose

У меня есть пользовательская схема с mongoose в nodejs вроде этого

userschema = mongoose.Schema({
    org: String,
    username: String,
    fullname: String,
    password: String,
    email: String
});

Кроме того, иногда мне нужно добавить еще несколько полей.

Основной вопрос: могу ли я иметь необязательные поля в схеме моногоза?

4b9b3361

Ответ 1

Все поля в схеме mongoose по умолчанию необязательны (кроме _id, конечно).

Поле требуется только в том случае, если вы добавите required: true к его определению.

Итак, определите свою схему как надмножество всех возможных полей, добавив required: true к требуемым полям.

Ответ 2

Помимо необязательного (по умолчанию) и требуется, поле также может быть условно обязательным, на основе одного или нескольких других поля.

Например, требуется пароль только в том случае, если существует сообщение электронной почты:

var userschema = mongoose.Schema({
    org: String,
    username: String,
    fullname: String,
    password: {
        type: String,
        required: function(){
            return this.email? true : false 
        }
    },
    email: String
});