sql >> Base de Datos >  >> NoSQL >> MongoDB

Mangosta MODEL actualizar () vs guardar ()

En primer lugar, no necesita llamar a foundUser.save() cuando está utilizando el método foundUser.update().

Y, todos los métodos anteriores son casi igualmente eficientes ya que se realizan dos llamadas a la base de datos. Por lo tanto, todo se reduce a su preferencia personal.

Y, un método más con solo una llamada a la base de datos se puede ejecutar de esta manera:-

let foundUser = await userModel.findOneAndUpdate(
 { email: recievedEmail, password: hashedPassword },
 { $set: { lastLogin: new Date() }, $push: { myEvents: authEvent } }
);

En este método, si existe un usuario con correo electrónico y contraseña dados, ese usuario se actualizará y el documento actualizado correspondiente se devolverá en un foundUser variable. Por lo tanto, no tiene que realizar una verificación adicional de la contraseña:If findOneAndUpdate() devuelve un documento, significa que la contraseña y el correo electrónico coinciden. Solo tiene que verificar si es nulo o indefinido en el documento devuelto para que no coincida.