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.