MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoose MODEL update() vs save()

Prima di tutto, non è necessario chiamare foundUser.save() quando si utilizza il metodo foundUser.update().

Inoltre, tutti i metodi precedenti sono quasi ugualmente efficienti in quanto vengono effettuate due chiamate al database. Quindi, dipende dalle tue preferenze personali.

E un altro metodo con una sola chiamata al database può essere eseguito in questo modo:-

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

In questo metodo, se esiste un utente con l'e-mail e la password specificate, quell'utente verrà aggiornato e il documento aggiornato corrispondente verrà restituito in un foundUser variabile. Quindi non devi eseguire un ulteriore controllo sulla password:If findOneAndUpdate() restituisce un documento, significa password ed email abbinate. Devi solo verificare la presenza di null o undefined sul documento restituito per nessuna corrispondenza.