Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

540
Visualizações
Mongoose Populate: falta el error de esquema, pero el esquema está registrado correctamente para el modelo

¡Ú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:

  • la lista de documentos devueltos por la ruta contendrá documentos completos en lugar de solo los ID de ref.

Resoluciones intentadas:

  • función ejecutiva agregada después de poblar
  • Stackoverflow me llevó a creer que el problema estaba relacionado con las conexiones de mongoose, por lo que renové el backend para que mis archivos modelo devolvieran esquemas en lugar de modelos, y luego usé mongoose.createConnection en lugar de .connect, e hice una base de datos. js para contener una única instancia de cada modelo (connection.mode()) a la que los archivos de ruta podrían acceder y compartir. No llegué a un punto en el que pudiera probar .populate, así que reinicié el siguiente código

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;
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

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' }]
over 4 years ago · Santiago Trujillo Relatório

0

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.

over 4 years ago · Santiago Trujillo Relatório

0

¿Intentaste usar "Progresiones" mientras lo pasabas en poblar?

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda