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

98
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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