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

180
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

0

por favor intente esto

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