Nå, der er den respektive dokumentation at se for både .update()
og .findAndModify()
som er rodmetoden til .findOneAndUpdate()
her.
Men i de vigtigste forskelle er der:
-
update() :Er beregnet til at udføre en atomisk opdateringsoperation mod "et eller flere" dokumenter, der matches af dets forespørgselstilstand i en samling. Det returnerer antallet af ændrede dokumenter i sit svar.
-
findOneAndUpdate() :Har til formål både at behandle en opdateringserklæring på et "singular" dokument, samt at hente indholdet af det "singular" dokument. Tilstanden, der returneres, afhænger af værdien af den "nye" mulighed, som den overføres til operationen. Hvor
true
det "modificerede" dokument returneres. Hvorfalse
det "originale" dokument returneres før enhver ændring. Sidstnævnte form er standardindstillingen.
Kort sagt. Man er beregnet til at ændre i "bulk" og ikke bekymre sig om dokumentindholdet i resultatet. Og den anden er beregnet til at ændre et enkelt dokument og returnere dokumentindholdet som resultat.
Det er forskellen.