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?
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
Sugeriría continuar con su enfoque actual siempre que
Para contrarrestar el segundo punto, puede rechazar campos desconocidos utilizando la validación de Joi.
por favor intente esto
student = await Student.updateOne({_id:req.params.id},req.body);