Opslaan versus invoegen:
In uw gegeven voorbeelden is het gedrag in wezen hetzelfde.
save gedraagt zich anders als het wordt doorgegeven met een "_id" parameter.
Voor opslaan, Als het document _id . bevat , het zal het opvragen van de collectie op de _id veld, zo niet, dan wordt het ingevoegd.
Als een document niet bestaat met de opgegeven _id-waarde, voert de methode save() een invoeging uit met de opgegeven velden in het document.
Als er een document bestaat met de opgegeven _id-waarde, voert de methode save() een update uit, waarbij alle velden in het bestaande record worden vervangen door de velden uit het document.
Opslaan versus bijwerken :
update wijzigt een bestaand document dat overeenkomt met uw queryparameters. Als er niet zo'n overeenkomend document is, dan is dat het moment waarop upsert komt in beeld.
upsert : false:Er gebeurt niets als een dergelijk document niet bestaatupsert : true:Er wordt een nieuw document gemaakt met een inhoud die gelijk is aan de queryparameters en de updateparameters
save :Staat geen query-parameters toe. if _id bestaat en er is een overeenkomend document met dezelfde _id , het vervangt het. Als er geen _id is opgegeven/geen overeenkomend document, wordt het document als een nieuw ingevoegd.