¡Último día de 2021! Después de pasar poco más de 5 horas buscando en Internet, he recurrido a publicar para obtener ayuda.
Comportamiento deseado:
Resoluciones intentadas:
Error
MissingSchemaError: Schema hasn't been registered for model "progressions". Use mongoose.model(name, schema)Tenga en cuenta que este error se produce al intentar completar la "lección" también
modelo de progreso
const Progress = mongoose.model('Progress', new Schema({ lesson: { type: Schema.Types.ObjectId, ref: 'lesson' }, progressions: [{ type: Schema.Types.ObjectId, ref: 'progression' }], progress:{ type: Number }, user:{ type: Schema.Types.ObjectId, ref: 'user' } },{ timestamps: true, })); module.exports = Progress;Archivo Rutas de Progreso
router.get('/all', async (req, res) => { let user = await User.find({email:req.query.user}) let data = await Progress.find({user:user}).populate('progressions') return res.status(201).json({ data, message: 'data populated', success: true }); });Modelo de progresión
const Progression = mongoose.model('Progression', new Schema({ type:{ type:String }, toBeReviewed:{ type: Date, default: Date.now }, },{ timestamps: true, })); module.exports = Progression;Intente cambiar el atributo de ref de la propiedad de progressions en el esquema de Progress para que coincida con el nombre del modelo de Progression (en mayúsculas):
progressions: [{ type: Schema.Types.ObjectId, ref: 'Progression' }]Todo el código en sus archivos mongoose debería haberse ejecutado antes de que se use en otros archivos.
Este error podría estar ocurriendo porque sus modelos de mongoose no se ejecutan antes de que se usen en algún otro archivo.
¿Intentaste usar "Progresiones" mientras lo pasabas en poblar?