MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose MODEL update() vs save()

Zunächst einmal müssen Sie foundUser.save() nicht aufrufen, wenn Sie die Methode foundUser.update() verwenden.

Und alle oben genannten Methoden sind fast gleich effizient, da zwei Aufrufe an die Datenbank erfolgen. Es kommt also auf Ihre persönlichen Vorlieben an.

Und eine weitere Methode mit nur einem Aufruf an die Datenbank kann auf diese Weise ausgeführt werden:-

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

Wenn bei dieser Methode ein Benutzer mit der angegebenen E-Mail-Adresse und dem angegebenen Passwort vorhanden ist, wird dieser Benutzer aktualisiert und das entsprechende aktualisierte Dokument wird in einem foundUser zurückgegeben Variable. Sie müssen also keine zusätzliche Überprüfung des Passworts durchführen:Wenn findOneAndUpdate() gibt ein Dokument zurück, bedeutet dies, dass Passwort und E-Mail übereinstimmen. Sie müssen nur auf null oder undefined im zurückgegebenen Dokument auf keine Übereinstimmung prüfen.