Массив проверки схемы Mongoose с определенными значениями

Я новичок в мангусте и пытаюсь проверить массив с предопределенными значениями, такими как enum. Ниже моя схема

const movieSchema = new mongoose.Schema({
language:{
    type:[String],  
    enum : ['Hindi','English','Gujarati','Marathi'], 
    required:true
}
});

Ниже приведена схема JOI, используемая для проверки значений массива.

const schema = { 
 language:Joi.array().min(1).required()  
};

Как мне проверить, чтобы я мог сохранить поле Language в виде массива в mongodb.

Ниже приведен правильный массив json для публикации

 {"language":["Hindi","English"] }

Ниже указан недействительный json, и он не должен проверять схему.

 {"language":["French","Spanish","English"] }

2 ответа

Использование .valid() в .items(),

const schema = { 
  language: Joi.array()
    .items(Joi.string().valid(['Hindi', 'English']))  // only allow(valid) 'Hindi' or 'English' items in array
    .min(1).required()
};

Что касается новой версии, я думаю, мы должны использовать ... spread перед массивом. Я получал ошибку без ... оператора.

      private readonly groupSchema = object({
    name: string().required().alphanum().min(5).max(100),
    permissions: Joi.array().items(Joi.string().valid(...['READ', 'WRITE', 'DELETE', 'SHARE', 'UPLOAD_FILES'])).min(1).unique().required()
});
Другие вопросы по тегам