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

Mongoose MODEL update() vs save()

Først og fremmest behøver du ikke kalde foundUser.save(), når du bruger metoden foundUser.update().

Og alle ovenstående metoder er næsten lige effektive, da der foretages to opkald til databasen. Så det kommer ned til din personlige præference.

Og endnu en metode med kun et kald til databasen kan udføres på denne måde:-

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

I denne metode, hvis der findes en bruger med en given e-mail og adgangskode, vil denne bruger blive opdateret, og det tilsvarende opdaterede dokument vil blive returneret i en foundUser variabel. Så du behøver ikke at udføre en ekstra kontrol af adgangskoden:Hvis findOneAndUpdate() returnerer et dokument, betyder det, at password og e-mail matches. Du skal bare tjekke for null eller udefineret på det returnerede dokument for ingen match.




  1. Django sessioner

  2. $sum fra dokumenter og underdokumentgruppe af $author (MongoDB)

  3. ActionDispatch::Routing::RouteSet#call Rails 4.1 virkelig langsom

  4. Lagring og hentning af JavaScript-objekter i/fra MongoDB