MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Atualização do MODELO do Mongoose () vs salvar ()


Em primeiro lugar, você não precisa chamar foundUser.save() quando estiver usando o método foundUser.update().

E todos os métodos acima são quase igualmente eficientes, pois há duas chamadas sendo feitas ao banco de dados. Então, vai da sua preferência pessoal.

E, mais um método com apenas uma chamada para o banco de dados pode ser executado desta maneira:-
let foundUser = await userModel.findOneAndUpdate(
 { email: recievedEmail, password: hashedPassword },
 { $set: { lastLogin: new Date() }, $push: { myEvents: authEvent } }
);

Neste método, se existir um usuário com e-mail e senha fornecidos, esse usuário será atualizado e o documento atualizado correspondente será retornado em um foundUser variável. Portanto, você não precisa realizar uma verificação adicional na senha:Se findOneAndUpdate() retorna um documento, significa que a senha e o email correspondem. Você só precisa verificar se há nulo ou indefinido no documento retornado para não haver correspondência.