Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

107
Vistas
mangosta cómo actualizar las propiedades en el documento solo si existen en la solicitud?

Para actualizar un documento suelo hacer como tal...

 Model.findById(id) .then((doc) => { doc.fName = req.body.fName ? req.body.fName : doc.fName; doc.lName = req.body.lName ? req.body.lName : doc.lName return doc.save(); }) .then((result) => res.send(" Succesfully updated ! New data: " + result)) .catch((err) => res.send(err));

..que verifica si el campo realmente existe en la solicitud del cuerpo, de lo contrario, solo pasa el valor anterior.

¿Hay alguna manera de simplemente proporcionar los campos en la solicitud y dejar que haga la verificación por sí mismo, de modo que si un campo no existe, no lo elimine? al igual que...

 Model.someMethod(id) .then((doc) => { doc.fName = req.body.fName doc.lName = req.body.lName return doc.save(); }) .then((result) => res.send(" Succesfully updated ! New data: " + result)) .catch((err) => res.send(err));
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Usarlo de esta manera solo actualizará el mismo campo que ingresaste en el req.body . Los demás campos permanecerán como están. La variable que está en los campos NOT_ALLOWED no se actualizará.

 const NOT_ALLOWED = ['_id'] //Just the same field will update which are not in this variable Model.findById(id).then((docs) => { Object.keys(req.body).map((key) => { if (NOT_ALLOWED.indexOf(key) === -1) { docs[key] = req.body[key] } }) return docs.save() }) .then((result) => console.log("Updated Data", result)) .catch((err) => res.send(err));
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede hacerlo con una consulta de actualización . Primero, puede construir la configuración de actualización en función de todas las propiedades de req.body . Luego, simplemente pase esa configuración de actualización a la consulta de actualización . También puede pasar { new: true } como tercera configuración para actualizar la consulta, por lo que se devolverá el documento actualizado.

 let update = {}; if (req.body.fName) update.fName = req.body.fName; if (req.body.lName) update.lName = req.body.lName; Model.findByIdAndUpdate(id, update, { new: true }) .then((result) => res.send(" Succesfully updated ! New data: " + result)) .catch((err) => res.send(err));
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda