Массив проверки схемы 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()
});