まず、foundUser.update()メソッドを使用しているときにfoundUser.save()を呼び出す必要はありません。
また、データベースに対して2つの呼び出しが行われるため、上記のすべてのメソッドはほぼ同じように効率的です。だから、それはあなたの個人的な好みに帰着します。
また、データベースを1回呼び出すだけで、もう1つのメソッドを次の方法で実行できます。-
let foundUser = await userModel.findOneAndUpdate(
{ email: recievedEmail, password: hashedPassword },
{ $set: { lastLogin: new Date() }, $push: { myEvents: authEvent } }
);
この方法では、指定された電子メールとパスワードを持つユーザーが存在する場合、そのユーザーが更新され、対応する更新されたドキュメントがfoundUser
に返されます。 変数。したがって、パスワードに対して追加のチェックを実行する必要はありません。findOneAndUpdate()
の場合 ドキュメントを返します。これは、パスワードと電子メールが一致したことを意味します。返されたドキュメントでnullまたは未定義がないかどうかを確認するだけです。