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

Hvad er forskellen mellem gem og indsæt i Mongo DB?

Gem vs. Indsæt:

I dine givne eksempler er adfærden stort set den samme.

save opfører sig anderledes, hvis den sendes med en "_id" parameter.

Til lagring, hvis dokumentet indeholder _id , vil det ophæve forespørgsler om samlingen på _id felt, hvis ikke, indsættes det.

Hvis et dokument ikke eksisterer med den angivne _id-værdi, udfører save()-metoden en indsættelse med de angivne felter i dokumentet.

Hvis der findes et dokument med den angivne _id-værdi, udfører save()-metoden en opdatering og erstatter alle felter i den eksisterende post med felterne fra dokumentet.

Gem vs. Opdater :

update ændrer et eksisterende dokument, der matcher dine forespørgselsparametre. Hvis der ikke er et sådant matchende dokument, så upsert kommer på billedet.

  • upsert : false :Der sker ikke noget, når et sådant dokument ikke eksisterer
  • upsert : true :Nyt dokument oprettes med indhold svarende til forespørgselsparametre og opdateringsparametre

save :Tillader ikke nogen forespørgselsparametre. hvis _id eksisterer, og der er et matchende dokument med det samme _id , det erstatter det. Når intet _id er angivet/intet matchende dokument, indsætter det dokumentet som et nyt.



  1. Implementering af paginering i mongodb

  2. Mongodb findAndModify node js

  3. Vent på tilbagekald af asynkronfunktion i sidste stream.on('data') hændelse

  4. Lagring af returværdien for node.js setTimeout i redis