Estoy trabajando en un proyecto de NodeJS. Estoy usando express y mangosta. Estoy tratando de actualizar un documento en MongoDB pero las actualizaciones no aparecen. Además, no hay ningún error ya que la página se redirige según res.redirect('/content/contnet-view/'+id)
router.post('/posthere', function(req, res){ const { id, Status, ModuleIndex, ItemIndex } = req.body; Content.findOne({_id: id}, function(err, foundContent){ if(err){ console.log(err); res.status(500).send(); }else{ if(!foundEnroll){ res.status(404).send(); }else{ if(id){ foundContent.ContentData.ContentM[ModuleIndex].ContentI[ItemIndex].Status = Status; } foundContent.save(function(err, updateContent){ if(err){ console.log(err); res.status(500).send(); }else{ res.redirect('/content/contnet-view/'+id) } })}} })})¿Alguna idea de lo que estoy haciendo mal aquí?
Usar findByIdAndUpdate es un mejor enfoque, pero en este caso, la función de guardado de mongoose devuelve un objeto de promesa. Si save() tiene éxito, la promesa se resuelve en el documento que se guardó
doc.save().then(savedDoc => { savedDoc === doc; // true });Debe usar el enfoque de cadena entoncesable para manejar la función asíncrona en lugar de la devolución de llamada
Era un problema con el esquema mal configurado. haciéndolo coincidir con el formato del Documento lo arregló.