sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose MODEL update() vs save()

Za prvé, když používáte metodu foundUser.update(), nemusíte volat foundUser.save().

A všechny výše uvedené metody jsou téměř stejně účinné, protože do databáze probíhají dvě volání. Záleží tedy na vašich osobních preferencích.

A ještě jedna metoda s pouze jedním voláním databáze může být provedena tímto způsobem:-

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

V této metodě, pokud existuje uživatel s daným e-mailem a heslem, bude tento uživatel aktualizován a odpovídající aktualizovaný dokument bude vrácen v foundUser variabilní. Nemusíte tedy provádět další kontrolu hesla:Pokud findOneAndUpdate() vrátí dokument, to znamená, že heslo a e-mail se shodují. Musíte pouze zkontrolovat, zda je ve vráceném dokumentu null nebo undefined, aby nedošlo k žádné shodě.




  1. Metoda instance Mongoose „toto“ neodkazuje na model

  2. Mongoidní pořadí podle délky pole

  3. Jak navrhnu schéma MongoDB pro agregátor článků na Twitteru

  4. mangoose findOne s řazením