/ Quiero crear una sección de módulo para el sitio web de un curso para el que también necesitaré un esquema de lección. Entonces, ¿cómo puedo diseñar un esquema de lección, un esquema de módulo y un esquema de curso para que funcionen exactamente como se necesita? Actualmente estoy haciendo esto /
import mongoose from 'mongoose' const LessonSchema = new mongoose.Schema({ title: String, content: String, resource_url: String }) const ModuleSchema = new mongoose.Schema({ name: { type: String, required: true }, lessons: [LessonSchema] }) export const Module = mongoose.model('Module', ModuleSchema); const CourseSchema = new mongoose.Schema({ name: { type: String, trim: true, required: 'Name is required' }, price: { type: String, trim: true, required: true }, image: { data: Buffer, contentType: String }, intro: { type: String, required :true }, description: { type: String, trim: true }, category: { type: String, required: 'Category is required' }, updated: Date, created: { type: Date, default: Date.now }, instructor: {type: mongoose.Schema.ObjectId, ref: 'User'}, published: { type: Boolean, default: false }, modules: [ModuleSchema] }) export default mongoose.model('Course', CourseSchema)
Arriba estaba el esquema y esto es logico
const newLesson = async (req, res) => { try { let lesson = req.body.lesson let course = await Course.find({modules: {_id: req.params.moduleId}}) console.log(course) } catch (err) { return res.status(400).json({ error: errorHandler.getErrorMessage(err) }) } } const newModule = async (req, res) => { try { let lesson = req.body.lesson let result = await Course.findByIdAndUpdate(req.course._id, {$push: {modules: {name: req.body.name, lessons: lesson}}, updated: Date.now()}, {new: true}) .populate('instructor', '_id name') .exec() res.json(result) } catch (err) { return res.status(400).json({ error: errorHandler.getErrorMessage(err) }) } }
** He estado pensando en esto desde hace un tiempo y no puedo superarlo. ¿Sabes cómo puedo dar forma al esquema y la lógica para poder impulsar las lecciones en el módulo y luego el módulo en el esquema del curso? **