Я пытаюсь вставить массив объектов в массив объектов в моей схеме mongoDB. Вот как я хочу, чтобы моя схема отображалась.
const CourseSchema = mongoose.Schema({
categoryname: {
type: String,
required: "Course Category",
min: 3,
max: 100
},
coursename: {
type: String,
required: "Course Name",
min: 3,
max: 100
},
levels:
[
{
levelid: Number,
levelname: String,
chapter:
[
{
chapternumber: Number,
chaptername: String,
content: String //To be elaborated
}
]
}
]
});
Мой API, который я написал, выглядит следующим образом:
exports.addcourse = (req, res) => {
let levels = [];
levels.push({
levelid: req.body.levelid,
levelname: req.body.levelname,
chapter: [
{
chapternumber: req.body.chapternumber,
chaptername: req.body.chaptername,
content: req.body.content
}
]
})
const newCourse = new Course({
coursename: req.body.coursename,
categoryname: req.body.categoryname,
levels: levels
});
newCourse.save(function (error) {
if (error) res.json({ message: 'could not add course because ' + error });
res.json({ newCourse: newCourse });
});
}
Это прекрасно работает, когда я вхожу на один уровень и одну главу, но выдает ошибку при вводе нескольких данных. Я предоставляю информацию от почтальона 'x- www'form-urlencoded'.
, пожалуйста, помогите.
Ошибка, которую я получаю, когда добавляю еще один levelid и levelname в почтальоне
{
"message": "could not add course because ValidationError: levels.0.levelid: Cast to Number failed for value \"[ '1', '2' ]\" at path \"levelid\", levels.0.levelname: Cast to String failed for value \"[ 'First Level', 'Second Level' ]\" at path \"levelname\""
}
Данные, которые я пытаюсь ввести