Bem, há a respectiva documentação para ver tanto para
.update()
e .findAndModify()
que é o método raiz de .findOneAndUpdate()
aqui. Mas nas principais diferenças existem:
-
atualizar() :Destina-se a executar uma operação de atualização atômica em relação a "um ou mais" documentos correspondentes à sua condição de consulta em uma coleção. Ele retorna o número de documentos modificados em sua resposta.
-
findOneAndUpdate() :Tem a finalidade de processar uma declaração de atualização em um documento "singular", bem como recuperar o conteúdo desse documento "singular". O estado retornado depende do valor da opção "novo" conforme passado para a operação. Ondetrue
o documento "modificado" é retornado. Ondefalse
o documento "original" é devolvido antes de qualquer modificação. A última forma é a opção padrão.
Resumidamente. Um destina-se a modificar "em massa" e não se preocupar com o conteúdo do documento no resultado. E o outro destina-se a modificar um documento singular e retornar o conteúdo do documento como resultado.
Essa é a diferença.