es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estoy utilizando findOne para luego actualizar el único documento que obtengo, pero quiero usar un find para poder encontrar todos los documentos y luego actualizarlos todos.

El problema aquí es que sólo se está actualizando el primer documento con el correo electrónico dado, pero se quiere actualizar todos los correos electrónicos encontrados con este correo electrónico, por lo que se desea usar find() pero no se sabe qué escribir para actualizar todos los documentos encontrados.

router.route("/Updateinfo").post((req, res) => {
console.log("updateinfo");
console.log(email);
const z = req.body.Name;
const d = req.body.Password;
const s = req.body.Email;
const v = req.body.Type;
console.log(z);
if(v!="admin"){
User.find({Email: email}, function (err, users) {
users.forEach(function(user) {
user.Name = z;
user.Password = d;
user.Email = s;
user.Type = v;
user.save(function (err) {
if(err) {
console.error('ERROR!');
}
});
});
});
}
});

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para actualizar todos los documentos que coinciden con el correo electrónico dado, se puede usar el método find() en lugar del método findOne(). Luego, se puede recorrer los resultados y actualizar cada documento según corresponda. Aquí hay un ejemplo de código:

    router.route("/Updateinfo").post((req, res) => {
      console.log("updateinfo");
      console.log(email);
      const z = req.body.Name;
      const d = req.body.Password;
      const s = req.body.Email;
      const v = req.body.Type;
      console.log(z);
    
      if(v!="admin"){
        User.find({Email: email}, function (err, users) {
          users.forEach(function(user) {
            user.Name = z;
            user.Password = d;
            user.Email = s;
            user.Type = v;
            user.save(function (err) {
                if (err) {
                    console.error('ERROR!');
                }
            });
          });
        });
      }
    });
    

    En este código, usamos User.find({Email: email}) para encontrar todos los documentos que coinciden con el correo electrónico dado. Luego, usamos el método forEach() para recorrer los resultados y actualizar los campos de cada documento. Finalmente, guardamos cada documento usando el método user.save().

Comments are closed.