Welnu, er is de respectievelijke documentatie om te bekijken voor beide .update()
en .findAndModify()
wat de rootmethode is van .findOneAndUpdate()
hier.
Maar de belangrijkste verschillen zijn:
-
update() :Is bedoeld om een atomaire update-bewerking uit te voeren tegen "een of meer" documenten die overeenkomen met de queryvoorwaarde in een verzameling. Het geeft het aantal gewijzigde documenten terug in zijn antwoord.
-
findOneAndUpdate() :Heeft tot doel zowel een update-verklaring op een "enkelvoud" document te verwerken, als de inhoud van dat "enkelvoud" document op te halen. De status die wordt geretourneerd, is afhankelijk van de waarde van de "nieuwe" optie die aan de bewerking is doorgegeven. Waar
true
het "gewijzigde" document wordt geretourneerd. Waarfalse
het "originele" document wordt geretourneerd vóór elke wijziging. De laatste vorm is de standaardoptie.
In het kort. De ene is bedoeld om in "bulk" te wijzigen en geen zorgen te maken over de documentinhoud in het resultaat. En de andere is bedoeld om een enkelvoudig document te wijzigen en de documentinhoud als resultaat terug te geven.
Dat is het verschil.