Tja, det finns respektive dokumentation att se för både .update()
och .findAndModify()
som är rotmetoden för .findOneAndUpdate()
här.
Men i de huvudsakliga skillnaderna finns:
-
update() :Är tänkt att utföra en atomär uppdateringsoperation mot "ett eller flera" dokument som matchas av dess frågevillkor i en samling. Den returnerar antalet ändrade dokument i sitt svar.
-
findOneAndUpdate() :Har syftet att både bearbeta ett uppdateringsuttalande på ett "singular" dokument, såväl som att hämta innehållet i det "singular" dokumentet. Tillståndet som returneras beror på värdet av det "nya" alternativet som skickats till operationen. Där
true
det "modifierade" dokumentet returneras. Därfalse
det "original" dokumentet returneras innan någon ändring. Den senare formen är standardalternativet.
Kortfattat. En är tänkt att modifiera i "bulk" och inte oroa dig för dokumentinnehållet i resultatet. Och den andra är avsedd att modifiera ett enskilt dokument och returnera dokumentinnehållet som resultat.
Det är skillnaden.