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.