So verwenden Sie die FindoneAndupdate -Methode in MongoDB

So verwenden Sie die FindoneAndupdate -Methode in MongoDB
MongoDB unterstützt mehrere Funktionen, die zum Verarbeiten von Daten in Datenbanken verwendet werden. In jeder Datenbank ist der Datenaktualisierungsprozess unvermeidlich und wird häufig durchgeführt. Die FindOneAndupDate -Methode wird verwendet, um ein einzelnes Dokument zu aktualisieren, das der Bedingung entspricht. Diese Methode ist eine Erweiterung der Kern -Update -Methode von MongoDB.

Der FindoneAndupdate () Die Methode gibt das Dokument nach dem Update zurück, während die updateOne () Die Methode von MongoDB aktualisiert auch ein Dokument, gibt jedoch kein Dokument zurück.

In diesem Artikel lernen Sie das FindOneAndupdate zu verstehen und anzuwenden() Methode von MongoDB für ein einzelnes Dokument übereinstimmen und aktualisiert.

Wie findOneAndupdate () in MongoDB funktioniert

Der Arbeitsmechanismus dieser Methode basiert auf der unten angegebenen Syntax:

db.Sammlungsname.findOneAndupdate (filter, update, options)

In der obigen Syntax:

Sammlungsname bezieht sich auf die Sammlung einer Mongo -Datenbank, in der sich das Dokument befindet.

Filter ist eine Bedingung, die dem Dokument entspricht.

aktualisieren Enthält die zu aktualisierten Feld (n) und zugehörigen Wert (en)

Optionen sind die Parameter zur Verfeinerung der Aktualisierungsverarbeitung. Zum Beispiel die “MaxtimemsDie Option wird verwendet, um die Zeit für die Ausführung einer Abfrage zu begrenzen. Wenn die angegebene Frist überschreitet, wird die Abfrage nicht ausgeführt.

WOLLEN SIE SEHEN SIE FINDONEANDUPDATE () in MongoDB

In diesem Abschnitt wird eine detaillierte Anleitung mit Hilfe mehrerer Beispiele zur Verwendung von FindOneAnDupDate () -Methode zur Verfügung gestellt:

Beispiel 1: Aktualisieren eines einzelnen Dokuments

In diesem Beispiel werden wir eine „verwenden“LaptopsKollektion und der folgende Inhalt liegt darin:

> db.Laptops.finden().hübsch()

Wir wollen a hinzufügen "Status" Feld mit dem Wert “verfügbar”Zu den Dokumenten, in denen die“Einheiten"Wert ist größer als oder gleich"50“. Der unten erwähnte Befehl führt das oben genannte Update mit Hilfe des FindoneAndupdate () Methode.

> db.Laptops.findOneandUpdate ("Einheiten": $ gte: 50, $ set: "status": "verfügbar")

Die folgenden Beobachtungen stammen aus der obigen Ausgabe:

Der FindoneAndupdate () Die Methode hat das Originaldokument zurückgegeben (vor dem Update).

Da es zwei Dokumente gibt, die haben "Einheiten"Wert größer als oder gleich"50", aber die FindoneAndupdate () Methode berücksichtigt die erste, die dem Zustand entspricht.

Sie können das Update mithilfe des unten genannten Befehls überprüfen: und es wird festgestellt, dass nur ein Dokument mit dem Feld hinzugefügt wirdStatus“.

> db.Laptops.finden().hübsch()

Beispiel 2: Rückgabe des aktualisierten Dokuments

Standardmäßig gibt die Methode FindOneAndupDate () das Originaldokument zurück. Sie können das aktualisierte Dokument als Gegenleistung erhalten, indem Sie die “festlegen“returnNewdocument"Optionswert für"WAHR“.

Der unten geschriebene Befehl fügt ein neues Feld hinzu “Katze"Und sein Wert wird auf" gesetzt "Spiele“. Das Update wird in das Dokument durchgeführt, in dem die “Preis”Wert gleich 1750. Darüber hinaus die “returnNewdocument" Wert ist "WAHR“. Es muss also das aktualisierte Dokument zurückgeben.

> db.Laptops.findOneandUpdate ("preis": 1750, $ set: "cat": "gaming", returnNewdocument: true)

Die Ausgabe zeigt, dass das vom obigen Befehl zurückgegebene Dokument eine aktualisierte Version ist.

Beispiel 3: Verwendung von findOneAndupdate () Methode mit Optionen

Mehrere Optionen werden von dieser Methode unterstützt, da wir die “angewendet habenreturnNewdocument”Option in“Beispiel 2“. In diesem Abschnitt werden mehrere andere Optionen, die diese Methode unterstützt, erläutert.

Aufstockung: Der Wert der “SteifterDie Option ist standardmäßig falsch falsch. Und wenn es auf “eingestellt ist“WAHR", Die FindoneAndupdate () Die Methode erstellt ein neues Dokument, wenn die Bedingung kein Dokument übereinstimmt.

Zum Beispiel wird der folgende Befehl nach den Dokumenten suchen, in denen die “Machen"Wert Matches"Außerirdischer" im Laptops Sammlung. Da kein Dokument einen Feldwert hat “Außerirdischer", Daher wird ein neues Dokument erstellt, weil wir die “festgelegt haben“Steifter"Wert als"WAHR“.

Notiz: Wir haben auch die „benutzt“returnNewdocumentOption, um das aktualisierte Dokument als Gegenleistung zu erhalten.

> db.Laptops.findOneAndupdate ("make": "alien", $ set: "preis": 1500, "kat": "gaming", upsert: true, returnNewDocument: true)

Maxtimems: Diese Option wird verwendet, um die Zeit (in Millisekunden) für den Aktualisierungsbefehl zu begrenzen. Wenn die angegebene Frist überschreitet, gibt die Abfrage einen Fehler zurück. Zum Beispiel haben wir die "festgelegt"Maxtimems"Option zum Wert"2”In dem folgenden Befehl:

> db.Laptops.findOneandUpdate ("make": "alien", $ set: "Einheiten": 15, "Preis": 1850, returnNewdocument: true, maxtimems: 2)

Notiz: Der Wert der “Maxtimems”Option muss numerisch sein (nicht float oder ein anderer Datentyp).

Abschluss

Der Aktualisierungsprozess spielt eine Schlüsselrolle in jedem Datenbankverwaltungssystem, da die Daten mit der Zeit in jeder Organisation aktualisiert werden müssen. Die Methodenerweiterungen von mehreren Updates werden von MongoDB verwendet FindoneAndupdate (). In diesem informativen Beitrag haben wir eine kurze Anwendung dieser Methode in MongoDB bereitgestellt. Die gezielte Methode entspricht dem ersten Dokument basierend auf der Bedingung und aktualisiert dann die spezifischen Feld (n) dieses Dokuments.