MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mise à jour du MODÈLE de Mongoose() vs save()

Tout d'abord, vous n'avez pas besoin d'appeler foundUser.save() lorsque vous utilisez la méthode foundUser.update().

Et, toutes les méthodes ci-dessus sont presque aussi efficaces car il y a deux appels à la base de données. Donc, cela dépend de vos préférences personnelles.

Et, une autre méthode avec un seul appel à la base de données peut être exécutée de cette manière :-

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

Dans cette méthode, si un utilisateur avec une adresse e-mail et un mot de passe donnés existe, cet utilisateur sera mis à jour et le document mis à jour correspondant sera renvoyé dans un foundUser variable. Vous n'avez donc pas à effectuer une vérification supplémentaire du mot de passe :Si findOneAndUpdate() renvoie un document, cela signifie que le mot de passe et l'e-mail correspondent. Vous avez juste à vérifier null ou undefined sur le document retourné pour aucune correspondance.