Salvar x Inserir:
Em seus exemplos dados, o comportamento é essencialmente o mesmo.
save se comporta de maneira diferente se for passado com um parâmetro "_id". Para salvar, se o documento contiver
_id , ele fará um upsert consultando a coleção no _id campo, se não, ele irá inserir.
Se não existir um documento com o valor _id especificado, o método save() realiza uma inserção com os campos especificados no documento.
Se existir um documento com o valor _id especificado, o método save() realizará uma atualização, substituindo todos os campos do registro existente pelos campos do documento.
Salvar x Atualizar :
update modifica um documento existente que corresponda aos seus parâmetros de consulta. Se não houver tal documento correspondente, é quando upsert vem na foto. upsert : false:Nada acontece quando esse documento não existeupsert : true:Novo documento é criado com conteúdo igual aos parâmetros de consulta e parâmetros de atualização
save :não permite nenhum parâmetro de consulta. se _id existe e existe um documento correspondente com o mesmo _id , ele o substitui. Quando nenhum _id especificado/nenhum documento correspondente, ele insere o documento como um novo.