mangoest verschil van findOneAndUpdate en update

Wat is het verschil tussen findOneAndUpdate en update?

Beide accepteren criteria om op te vragen en document om bij te werken.


Antwoord 1, autoriteit 100%

Nou, er is de respectievelijke documentatie om te bekijken voor zowel .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 truehet “gewijzigde” document wordt geretourneerd. Waar falsehet “originele” document wordt geretourneerd vóór enige wijziging. De laatste vorm is de standaardoptie.

Kortom. 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.


Antwoord 2, autoriteit 6%

De .findOneAndUpdatemethode geeft een mongodb .findAndModifyupdate-opdracht en retourneert het gevonden document ( indien van toepassing) terugbellen of het gewijzigde document retourneren in plaats van het origineel als de optie newtrueis en de .updatevoer de query uit als een update()bewerking.


Antwoord 3, autoriteit 2%

Let op: er is een optie returnNewDocumentin de findOneAndXXX-methoden en de standaardwaarde is true. Als u het node.js-stuurprogramma gebruikt, worden de opties returnOriginalgenoemd.

Other episodes