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 eksistererupsert : 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.