MongoDB ersetzen und ersetzt werden

MongoDB ersetzen und ersetzt werden
Die Funktionen für Ersatz- und Ersatz- und Ersatz () werden verwendet, um einen Wert in der MongoDB -Datenbank zu ersetzen. Es gibt nur einen kleinen Unterschied bei der Arbeit beider Betreiber. Die Ersatz -Methode wird verwendet, um ein Einzelkundendokument zu ersetzen, das einem angegebenen Filter entspricht. Die Methode nimmt drei Argumente an: den Filter, das Ersatzdokument und ein optionales Optionsobjekt. Während die Ersatzmethode verwendet wird, um alle Dokumente in einer Sammlung durch einen neuen Satz von Dokumenten zu ersetzen. Diese Methode wird normalerweise für Massenaktualisierungen verwendet und kann beim Übertragen von Daten von einer Sammlung auf eine andere geeignet sein. Die Methode nimmt zwei Argumente an: die Ersatzdokumente und ein optionales Optionsobjekt. In diesem Leitfaden werden wir heute die Verwendung beider Betreiber mit Hilfe von Beispielen diskutieren.

Sammlung erstellen

Ausgehend von der MongoDB -Shell erstellen wir eine neue Kollektion „Dummy“ in unserem MongoDB mit Hilfe des folgenden Befehls: Die Methode createCollection ().

Test> db.CreateCollection ("Dummy")
OK: 1

Dokumente einfügen

Es ist Zeit, der MongoDB -Sammlung Dokumente hinzuzufügen. Zu diesem Zweck wurde der folgende MongoDB -Befehl ausgeführt, der mehrere Dokumente in die "Dummy" -Kollektion einfügt: InsertMany () -Funktion. Die Dokumente enthalten Informationen über Städte, Länder und ein Zählfeld (mit Werten für einige der Dokumente). Jedes Dokument im Array verfügt über einen Satz von Schlüsselwertpaaren. Der Befehl gibt eine Antwort zurück, dass die Einfügung anerkannt wird.

Test> db.Dummy.InsertMany ([Stadt: "Texas", Land: "England", Graf: 5,
… City: "Los Angeles", Land: "Amerika", Graf: 2, City: "Italien", Land: "Frankreich",
… City: "Istanbul", Land: "Türkei", Graf: 8, City: "Delhi", Land: "Indien", Graf: 7])

Anerkannt: wahr,
InsertDIDs:
'0': ObjectID ("63C7B3588083BBF655D69684"),
'1': ObjectID ("63C7B3588083BBF655D69685"),
'2': ObjectID ("63C7B3588083BBF655D69686"),
'3': ObjectID ("63C7B3588083BBF655D69687"),
'4': ObjectID ("63C7B3588083BBF655D69688")

Dokumente anzeigen

Um jetzt alle Dokumente aus der "Dummy" -Kollektion abzurufen und anzuzeigen. Die zurückgegebenen Dokumente werden in einem Array -Format dargestellt, wobei jeder Datensatz im Array als Objekt ist. Die Felder in jedem Dokument umfassen "_id", "Stadt", "Land" und "Count" I.e. Das Feld „_id“ ist eine eindeutige Kennung, die von MongoDB zugewiesen wird.

Test> db.Dummy.finden()
[
_id: ObjectID ("63c7b3588083bbf655d69684"), Stadt: 'Texas', Land: 'England', Graf: 5,
oder,
_id: ObjectID ("63c7b3588083bbf655d69686"), Stadt: 'Italien', Land: 'Frankreich',
_id: ObjectID ("63c7b3588083bbf655d69687"), Stadt: 'Istanbul', Land: 'Türkei', Graf: 8,
_id: ObjectID ("63c7b3588083bbf655d69688"), Stadt: 'Delhi', Land: 'Indien', Graf: 7
]

Beispiel 01: Ersatz -Methode

Die Ersatz -Methode wird verwendet, um ein einzelnes Dokument zu ersetzen, das einem angegebenen Filter in MongoDB entspricht. Daher werden wir es in der Anweisung unten verwenden, um ein Dokument in der Kollektion „Dummy“ zu ersetzen. Das erste Argument, das an die Ersatz -Methode übergeben wurde, ist der Filter. In diesem Fall ist der Filter "Stadt": "Delhi", was bedeutet, dass das Dokument mit dem Feld "Delhi" ersetzt wird. Das zweite Argument, das an die Ersatz-Methode übergeben wurde. So wird das Dokument mit dem Feld "Stadt" auf "Delhi" nun das Feld "Land" auf "Indien-Pazifik" anstelle seines vorherigen Wertes einstellen lassen.

Der Code ist in einen Try-Catch-Block eingewickelt, der verwendet wird, um alle Fehler zu verarbeiten, die während der Ausführung der Ersatz-Methode auftreten können. Wenn ein Fehler auftritt, wird er vom Fangblock erfasst und mit der Funktion print () in die Konsole gedruckt. Die Ausgabe zeigt, dass ein Dokument übereinstimmt, modifiziert wurde und die aufgepasste Zählung Null ist.

Test> Versuchen Sie
… DB.Dummy.ersetzen ("Stadt": "Delhi", "Country": "India-Pacific");
… Catch (e) print (e);

Anerkannt: True, C7B3588083BBF655D69684 "),
Eingeklagte: NULL,
MatchedCount: 1 und ',
ModifiedCount: 1,
UpsertedCount: 0

Nachdem wir alle Dokumente aus der Kollektion „Dummy“ auf der Shell mit der Funktion „Find“ angezeigt haben, müssen wir wissen, dass die 5th Rekord wurde mit "Country: 'India-Pacific" aktualisiert ".

Test> db.Dummy.finden()
[
_id: ObjectID ("63c7b3588083bbf655d69684"), Stadt: 'Texas', Land: 'England', Graf: 5,
oder,
_id: ObjectID ("63c7b3588083bbf655d69686"), Stadt: 'Italien', Land: 'Frankreich',
_id: ObjectID ("63c7b3588083bbf655d69687"), Stadt: 'Istanbul', Land: 'Türkei', Graf: 8,
_id: ObjectID ("63c7b3588083bbf655d69688"), Land: 'India-Pacific'
]

Beispiel Nr. 02: Ersetzen Sie die Methode mit Upsert -Option ersetzen

In diesem Code -Beispiel werden wir die Upsert -Option in der Methode ersetzen () verwenden, die einen neuen Datensatz hinzufügt, wenn der angegebene nicht gefunden wird. Daher enthält der Code, den wir unten verwendet haben. Das erste Argument, das der Ersatz -Methode übergeben wurde. Das zweite Argument ist das Ersatzdokument Stadt: „Mali“, Land: „Malediven“, Graf: 5. Das "Stadt" -Feld auf "Mali" wird nun das Feld "Land" auf "Malediven" und das "Count" auf 5 einstellen lassen.

Das dritte Argument, das an die Ersatz -Methode übergeben wurde. Der Code ist erneut in einen Try-Catch-Block eingewickelt, um () den in dem Befehl gefangenen Fehler zu drucken (). Das Antwortergebnis zeigt, dass keine Dokumente übereinstimmen und geändert wurden, aber ein Dokument wurde verbessert: Ein neues Dokument wird eingefügt, da das im Filter angegebene Dokument nicht vorhanden ist.

Test> Versuchen Sie db.Dummy.ersetzen ("Stadt": "Mali",
… City: "Mali", Land: "Maldives", Graf: 5, upsert: true);
… Catch (e) print (e);

Anerkannt: wahr,
InisedID: ObjectID ("63C7BFAAF8C41DF4B034B120"),
MatchedCount: 0,
ModifiedCount: 0,
UpsertedCount: 1

Um die Einführung eines zusätzlichen Datensatzes zu bestätigen, haben wir die gesamte "Dummy" -Kollektion angezeigt und das unten stehende Ergebnis gezeigt. Die Upsert -Option hat am Ende ein neues Dokument eingefügt.

Test> db.Dummy.finden()
[
_id: ObjectID ("63c7b3588083bbf655d69684"), Stadt: 'Texas', Land: 'England', Graf: 5,
oder,
_id: ObjectID ("63c7b3588083bbf655d69686"), Stadt: 'Italien', Land: 'Frankreich',
_id: ObjectID ("63c7b3588083bbf655d69687"), Stadt: 'Istanbul', Land: 'Türkei', Graf: 8,
_id: ObjectID ("63c7b3588083bbf655d69688"), Stadt: 'Delhi', Land: 'Indien', Graf: 7
_id: ObjectID ("63c7bfaaf8c41df4b034b120"), Stadt: 'Mali', Land: 'Maldives', Graf: 5
]

Beispiel Nr. 03: Ersetzen Sie die Methode

Hier ist die Abbildung, wie der Operator von austauschAll () in MongoDB funktioniert. Die Eingabe für den $ ersatzgerichteten Betreiber ist das Feld „Land“ aus den Dokumenten in der Sammlung. Der Wert "Fund" ist "I" und der Ersatzwert "E" ist "E". Dies bedeutet, dass alle Vorkommen des Buchstabens „I“ im Bereich „Land“ durch den Buchstaben „E“ ersetzt werden. Das Ergebnis ist ein neues „Land“ -Feld mit der modifizierten Zeichenfolge. Zum Beispiel würde der ursprüngliche Wert „Indien-Pazifik“ durch „indea-pacefec“ ersetzt, der Wert „Amerika“ ist jetzt „Amereca“ und „Malediven“ ist jetzt „Maldeves“, wie auch die Ausgabe demonstriert wird.

Test> db.Dummy.Aggregate ([$ Project: Country: $ ersatzEll: input: "$ landes", finde: "i", Ersatz: "E"])
[
_id: ObjectID ("63c7b3588083bbf655d69684"), Land: 'England',
_id: ObjectID ("63c7b3588083bbf655d69685"), Land: 'Amereca',
_id: ObjectID ("63c7b3588083bbf655d69686"), Land: 'Frankreich',
_id: ObjectID ("63c7b3588083bbf655d69687"), Land: 'Turkey',
_id: ObjectID ("63c7b3588083bbf655d69688"), Land: 'indea-pacefec',
_id: ObjectID ("63c7bfaaf8c41df4b034b120"), Land: 'MALDEVES'
]

Lassen Sie uns die obige Illustration noch einmal aktualisieren. Das „Fund“ -Argument wurde mit einem Wert "A" übergeben und der Ersatzwert ist "*****". Dies bedeutet, dass alle Vorkommen des Buchstabens "A" im Bereich "Stadt" durch die Zeichenfolge "******" ersetzt werden. Das Ergebnis ist ein neues "Stadt" -Feld mit der modifizierten Zeichenfolge. Beispiel.

Test> db.Dummy.Aggregate ([$ project: City: $ ersatzlaut: Input: "$ City", finde: "a", Ersatz: "******"])
[
_id: ObjectID ("63c7b3588083bbf655d69684"), Stadt: 'Tex ****** S',
_id: ObjectID ("63c7b3588083bbf655d69685"), Stadt: 'Los Angeles',
_id: ObjectID ("63c7b3588083bbf655d69686"), Stadt: 'Es ****** ly',
_id: ObjectID ("63c7b3588083bbf655d69687"), Stadt: 'Ist ****** nbul',
_id: ObjectID ("63c7b3588083bbf655d69688"), Stadt: NULL,
_id: ObjectID ("63c7bfaaf8c41df4b034b120"), Stadt: 'm ****** li'
]

Abschluss

Wir haben die Funktionen ersatz- () und austauschAll () zusammen mit dem Unterschied zwischen ihnen definiert. Wir haben 3 der unterschiedlichen Beispiele im Artikel i erklärt.e. Die Methode Ersatz () zum Aktualisieren eines einzelnen Feldes, der Option Upsert, die in der Ersatz -Methode verwendet werden soll. Die Methode ersetztem () unterscheidet sich stark von der Ersatz -Methode, wenn es um den Effekt der Datenbanksammlung hinzufügt.