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

186
Visualizações
Cómo actualizar el valor único del documento en Nodejs y mongo db

Hola, soy nuevo en nodeJS. Estoy atascado en la actualización de una sola entidad de documento. Estoy actualizando todo el documento fácilmente pero no puedo actualizar un solo valor. código

 router.patch("/:id", async (req, res) => { console.log(req.params.id); // check valid student let student = await Student.findById(req.params.id); if (!student) return res.status(400).send("Student Not Found"); // validition // const { error } = validate(req.body); // if (error) return res.status(400).send(error.details[0].message); // update the student student = await Student.updateOne({_id:req.params.id},{$set: req.body}); if(!student) return res.status(404).send('The student record not Updated') res.status(200).send('Student Record Updated') });

Función de validación

 function validateStudent(student){ const schema = Joi.object({ name:Joi.string().min(3).max(50).required(), fatherName:Joi.string().min(3).max(50).required(), email:Joi.string().min(5).max(50).required().email(), class:Joi.number().min(9).max(12).required(), fee:Joi.number().min(4000).max(10000).required(), address:Joi.string().min(1).max(255).required(), phone:Joi.string().min(1).max(255).required(), }) return schema.validate(student) }

Ahora está actualizando mi valor único en DB pero sin validación, porque si elimino el comentario de la validación, se fuerza para todos los campos requeridos. ¿Cómo puedo validar y actualizar un valor único que viene en la API desde la interfaz?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Para actualizar un solo campo como correo electrónico

 student = await Student.updateOne({_id:req.params.id},{$set: {email: req.body.email});

Pero..

horas extras, esta podría ser una tarea exhaustiva si

  • Tiene la intención de utilizar el método propuesto en todas las API.
  • o si un modelo tiene varios nombres de campo y lo está actualizando de forma selectiva.

Sugeriría continuar con su enfoque actual siempre que

  • el req.body siempre tiene todos los datos existentes en el documento
  • No contiene campos útiles como createdAt o updatedAt , de lo contrario, que pueden actualizarse.

Para contrarrestar el segundo punto, puede rechazar campos desconocidos utilizando la validación de Joi.

Fuente

about 4 years ago · Juan Pablo Isaza Relatório

0

por favor intente esto

 student = await Student.updateOne({_id:req.params.id},req.body);
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