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)