Saltar al contenido

Actualizar modelo con Mongoose, Express, NodeJS

Solución:

Tienes que encontrar el documento antes de actualizar nada:

Place.findById(req.params.id, function(err, p) {
  if (!p)
    return next(new Error('Could not load Document'));
  else {
    // do your updates here
    p.modified = new Date();

    p.save(function(err) {
      if (err)
        console.log('error')
      else
        console.log('success')
    });
  }
});

funciona para mí en el código de producción usando la misma configuración que tiene. En lugar de findById, puede utilizar cualquier otro método de búsqueda proporcionado por mongoose. Solo asegúrese de buscar el documento antes de actualizarlo.

Ahora, creo que puedes hacer esto:

Place.findOneAndUpdate({name:req.params.name}, req.body, function (err, place) {
  res.send(place);
});

También puedes encontrarlo por id:

Place.findOneAndUpdate({_id:req.params.id}, req.body, function (err, place) {
  res.send(place);
});

Entonces ahora puede buscar y actualizar directamente por ID, esto es para Mongoose v4

Place.findByIdAndUpdate(req.params.id, req.body, function (err, place) {
  res.send(place);
});

Solo para mencionar, si necesita un objeto actualizado, debe pasar {new: true} igual que

Place.findByIdAndUpdate(req.params.id, req.body, {new: true}, function (err, place) {
  res.send(place);
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *