Dois conceitos primeiro. Seu aplicativo é o Cliente , Mongodb é o Servidor .
A principal diferença é que com
.save() você já tem um objeto no código do lado do cliente ou teve que recuperar os dados do servidor antes de escrevê-lo de volta e está gravando tudo de volta. Por outro lado
.update() não exigem que os dados sejam carregados para o cliente a partir do servidor. Toda a interação acontece do lado do servidor sem recuperar para o cliente. Então .update() pode ser muito eficiente dessa maneira ao adicionar conteúdo a documentos existentes. Além disso, há o
multi parâmetro para .update() que permite que as ações sejam executadas em mais de um documento que corresponda à condição da consulta. Existem algumas coisas em métodos de conveniência que você perde ao usar
.update() como uma chamada, mas os benefícios para certas operações é o "trade-off" que você tem que suportar. Para obter mais informações sobre isso e as opções disponíveis, consulte a documentação. Resumindo
.save() é uma interface do lado do cliente, .update() é do lado do servidor.