Salva vs Inserisci :
Negli esempi forniti, il comportamento è essenzialmente lo stesso.
save
si comporta diversamente se viene passato con un parametro "_id".
Per salvare, se il documento contiene _id
, aumenterà la query della raccolta su _id
campo, in caso contrario, verrà inserito.
Se non esiste un documento con il valore _id specificato, il metodo save() esegue un inserimento con i campi specificati nel documento.
Se esiste un documento con il valore _id specificato, il metodo save() esegue un aggiornamento, sostituendo tutti i campi del record esistente con i campi del documento.
Salva vs Aggiorna :
update
modifica un documento esistente che corrisponde ai parametri della tua query. Se non esiste un tale documento corrispondente, è quando upsert
viene in foto.
upsert : false
:Non succede nulla quando non esiste tale documentoupsert : true
:il nuovo documento viene creato con contenuti uguali a parametri di query e parametri di aggiornamento
save
:non consente alcun parametro di query. se _id
esiste ed esiste un documento corrispondente con lo stesso _id
, lo sostituisce. Quando nessun _id specificato/nessun documento corrispondente, inserisce il documento come nuovo.