सबसे पहले, जब आप foundUser.update() विधि का उपयोग कर रहे हों, तो आपको फाउंडयूसर.सेव () को कॉल करने की आवश्यकता नहीं है।
और, उपरोक्त सभी विधियां लगभग समान रूप से कुशल हैं क्योंकि डेटाबेस में दो कॉल किए जा रहे हैं। तो, यह आपकी व्यक्तिगत पसंद के लिए नीचे आता है।
और, डेटाबेस को केवल एक कॉल के साथ एक और विधि इस तरह से निष्पादित की जा सकती है:-
let foundUser = await userModel.findOneAndUpdate(
{ email: recievedEmail, password: hashedPassword },
{ $set: { lastLogin: new Date() }, $push: { myEvents: authEvent } }
);
इस पद्धति में, यदि दिए गए ईमेल और पासवर्ड वाला उपयोगकर्ता मौजूद है, तो उस उपयोगकर्ता को अपडेट किया जाएगा और संबंधित अपडेट किए गए दस्तावेज़ को foundUser
में वापस कर दिया जाएगा। चर। इसलिए आपको पासवर्ड की अतिरिक्त जांच करने की आवश्यकता नहीं है:यदि findOneAndUpdate()
एक दस्तावेज़ लौटाता है, इसका अर्थ है पासवर्ड और ईमेल का मिलान। आपको बिना किसी मिलान के लौटाए गए दस्तावेज़ पर केवल शून्य या अपरिभाषित की जांच करनी है।