MongoDB Custom $ Funktion

MongoDB Custom $ Funktion
MongoDB ist eine leistungsstarke und flexible dokumentorientierte Datenbank, mit der Entwickler Daten in einem Format speichern und abrufen können, das JSON ähnelt. Eine der leistungsstärksten Merkmale von MongoDB ist die Fähigkeit, benutzerdefinierte $ -Funktionen zu verwenden, um Daten zu manipulieren und abzufragen. Benutzerdefinierte serverseitige JavaScript-Methoden, die allgemein als „gespeicherte Funktionen“ bezeichnet werden, werden von MongoDB unterstützt und können in der Abfragesprache und der aggregierten Pipeline-Stufen verwendet werden. Diese Funktionen können mit dem DB angegeben werden.System.JS -Sammlung und sie können in Abfragen oder in der aggregierten Pipeline mithilfe des $ -Funktion Operator verwendet werden. In diesem Artikel werden wir uns einige Beispiele für benutzerdefinierte $ -Funktionen und die Ausgabe ansehen, die sie produzieren.

Sammlung erstellen

Erstens werden wir die in unserer Datenbank verfügbare Sammlung überprüfen. Daher wurde die MongoDB -Shell perfekt gestartet, nachdem sie sich mit ihrer Verbindungszeichenfolge verband. Die MongoDB -Anweisung „Show Collections“ wurde ausgeführt, um alle Sammlungen anzuzeigen, die wir haben. Dieser Befehl gibt nichts in der Shell zurück, da in unserer „Test“ -Datenbank keine Sammlungen wie unten enthalten. Daher müssen wir zuerst eine neue Sammlung erstellen und dann anfangen, daran zu arbeiten.

Test> Sammlungen anzeigen

Um eine neue Datenerfassung in der MongoDB -Datenbank hinzuzufügen oder zu erstellen. Die CreateCollection -Methode wurde speziell entwickelt, um neue Sammlungen zu erstellen, die den Namen einer Sammlung in ihrem Argument erstellt werden,. In der folgenden Anweisung haben wir die Sammlung als "Test" bezeichnet. Die Ausgabe des Befehls gibt den Erfolgsstatus zurück: 0 für Misserfolg und 1 für den Erfolg. Der folgende Befehl gibt 1 zurück, was bedeutet, dass der Befehl erfolgreich war und die Sammlung erstellt wurde.

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

Datensätze einfügen

Nachdem die Datenbank eine neue Sammlung hinzugefügt hat, müssen Daten Datensätze hinzugefügt werden, da die Sammlung möglicherweise zum Zeitpunkt der Erstellung leer ist. Nach der Verwendung der InsertMany -Funktion von MongoDB in der Anweisung „DB“ haben wir daher 5 Dokumente zur gleichzeitig "Test" -Kollektion hinzugefügt. Die Funktion InsertMany () ist spezifisch zum Einfügen mehrerer Datensätze gleichzeitig. Alle 5 Aufzeichnungen enthalten insgesamt 3 Felder: Titel, Stadt und Gebiet. Das Feld "Titel" ist aus "String" -Typ, das Bereich des Gebiets hat ganzzahlige Typ und das Feld der Stadt befindet sich im String-Array, das Stringelemente enthält. Die Ausgabe dieser Anweisung zeigt die Bestätigung an, indem die eingefügten IDs jedes Dokuments angezeigt werden, das von der MongoDB -Datenbank getrennt zugewiesen wird.

Test> db.Prüfen.InsertMany ([Titel: "USA", City: ["Newyork", "Chicago", "Boston"], Gebiet: 234567,
… Titel: "VAE", Stadt: ["Dubai", "Abudhabi", "Sharjah"], Gebiet: 786907,
… Titel: "Asien", Stadt: ["Bangkok", "Tokio", "Peking"], Gebiet: 984567,
… Titel: "Europa", Stadt: ["Italien", "Istanbul", "London"], Gebiet: 1475997,
… Titel: "Antarctica", Stadt: ["Villa Las Estrellas", "König Edward Point", "Grytvkin"], Gebiet: 2835997])

Anerkannt: wahr,
InsertDIDs:
'0': ObjectID ("63CFFD7D64F216739D14B251"),
'1': ObjectID ("63CFFD7D64F216739D14B252"),
'2': ObjectID ("63CFFD7D64F216739D14B253"),
'3': ObjectID ("63CFFD7D64F216739D14B254"),
'4': ObjectID ("63CFFD7D64F216739D14B255")

Datensätze anzeigen

Nach dem Einfügen aller Datensätze in der "Test" -Sammlung der "Test" -Datenbank von MongoDB sind wir bereit, uns alle gleichzeitig anzusehen, um die Einfügung zu überprüfen. Somit kann die „Find“ -Funktion von MongoDB in der Anweisung „DB“ für diesen Zweck abgegeben werden. Verwenden Sie den Namen einer Sammlung zwischen dem Schlüsselwort „DB“ und der Funktion find (). Die Parameter der Funktion „Finden“ müssen die leeren lockigen Klammern enthalten, ohne einen Feldnamen anzugeben. Die leeren Klammern erwägen, alle Datensätze aus der Sammlung mit allen Datenfeldern abzurufen, während ein oder mehrere Felder angegeben werden, die zu einer einzigen oder nur angegebenen Datensatzanzeige auf der Shell führen. Daher zeigte die Ausgabe für diese Anweisung mit den leeren lockigen Klammern in der Funktion "Find () alle 5 Datensätze der" Test "-Kollektion mit jeweils alle 3 Felder: dem Titel, der Stadt und des Gebiets. Außerdem kann jeder Datensatz unter Verwendung des von der MongoDB -Datenbank zugewiesenen Felds „_id“ getrennt von einem anderen identifiziert werden.

Test> db.Prüfen.finden()
[
_id: ObjectID ("63CFFD7D64F216739D14B251"), Titel: 'USA', City: ['Newyork', 'Chicago', 'Boston'], Gebiet: 234567,
_id: ObjectID ("63cffd7d64f216739d14b252"), Titel: 'VAE', City: ['Dubai', 'Abudhabi', 'Sharjah'], Gebiet: 786907,
_id: ObjectID ("63CFFD7D64F216739D14B253"), Titel: 'Asia', City: ['Bangkok', 'Tokyo', 'Peking'], Gebiet: 984567,
_id: ObjectID ("63cffd7d64f216739d14b254"), Titel: 'Europa', City: ['Italien', 'Istanbul', 'London'], Gebiet: 1475997,
_id: objectId ("63cffd7d64f216739d14b255"), Titel: 'Antarctica', Stadt: ['Villa Las Estrellas', 'King Edward Point', 'Grytvkin'], Gebiet: 2835997
]

Beispiel # 01:

Nachdem wir nun mit der Einfügung und Anzeige der Datensätze aus der Sammlung „Test“ fertig sind, sind wir endlich bereit, die benutzerdefinierte Funktion $ function so anzuwenden, um anpassbare Vorgänge auf den Feldern auszuführen. Zum Beispiel möchten Sie in der Sammlung „Test“ ein neues Laufzeitfeld erstellen, das Details über das Land, seine Städte und den Bereich enthält, den es in einem einzigen Satz enthält. Zu diesem Zweck müssen wir alle drei Felder der "Test" -Kollektion innerhalb des nachstehend gezeigten benutzerdefinierten $ -Funktionsbetreibers verwenden. Die benutzerdefinierte Funktion nimmt alle drei Felder der „Test“ -Kollektion in Parametern auf, um ein neues Feld „Detail“ zu erstellen. Die Rückgabeanweisung hat diese drei Felder verwendet, um einen Satz zu erstellen und ihn auf der Shell anzuzeigen. Es ist notwendig, die Sammelfelder als "Argumente" und die Sprache zu "JS" festzulegen. Die Ausgabe zeigt ein neues Laufzeitfeld „Detail“ an, das genaue Informationen in einem Satz liefert.

Test> db.Prüfen.Aggregate ([$ addfields: detail: $ function: body: function (title, city, area) return '$ title hat $ city Städte mit $ aa Bereich…', Argumente: ["$ title", "$ city", "$ rea"], Lang: "js"])
[
_id: objectId ("63cffd7d64f216739d14b251"), Titel: 'USA', City: ['Newyork', 'Chicago', 'Boston'], Gebiet: 234567, Detail: 'USA hat New York, Chicago, Boston Cities mit 234567 Area mit 234567. … ',
_id: objectId ("63cffd7d64f216739d14b252"), Titel: 'VAE', City: ['Dubai', 'Abudhabi', 'Sharjah'], Gebiet: 786907, Detail: 'VAE Has Dubai, Abudhabi, Sharjah -Städte mit 786907 Area -Gebiet, Sharjah -Städte mit 786907 Gebietsgebiet, Sharjah -Städte mit 786907 Area -Gebietsgebiet, Sharjah -Städte mit 786907 Area -Gebiet, Sharjah Cities mit 786907 Area -Gebietsgebiet, Sharjah -Städte mit 786907 Area -Gebiet, Sharjah -Städte mit 786907 Area -Gebiet, Sharjah Cities mit 786907 Area -Gebietsgebiete … ',
_id: objectId ("63cffd7d64f216739d14b253"), Titel: 'Asia', City: ['Bangkok', 'Tokyo', 'Peking'], Gebiet: 984567, Detail: Asia Hassia Has Bangkok, Tokken, begab, Mit 98457 Gebietsgebietsgebietsgebiet, Insijing mit 98457 Area, in der Gegend von 98457, in der Gegend von 98457, in der Gegend von 98457, in der Gegend von 98457, in der Gegend von 98457, in der Gegend von 98457, in der Gegend von 98457, in der Gegend von 98457, in der Gegend von Asia Has … ',
_id: objectId ("63cffd7d64f216739d14b254"), Titel: 'Europa', Stadt: ['Italien', 'Istanbul', 'London'], Gebiet: 1475997, Detail: 'Europa hat Italien, Istanbul, London Cities mit 147597 Gebiet. Gebiet Italien, Istanbul, London mit 147597 Gebiet, Gebiet 147597, Gebiet, 147597, Gebiet Italien, Istanbul, London mit 147597, Gebiet von 147597 … ',
_id: ObjectId("63cffd7d64f216739d14b255"), title: 'Antarctica', city: [ 'Villa Las Estrellas ', ' King Edward point ', ' Grytvkin' ], area: 2835997, Detail: 'Antarctica has Villa Las Estrellas, King Edward Point, Grytvkin -Städte mit 2835997 Bereich… '
]

Beispiel # 02:

Schauen wir uns eine weitere Illustration an, um die benutzerdefinierte $ -Funktion in MongoDB zu verwenden. Hier verwenden wir den $ addfields -Operator, gefolgt vom Namen eines Feldes „Area -Tripled“, den wir mit dem $ -Funktion Operator erstellen möchten. Die benutzerdefinierte Funktion nimmt 1 Feld „Bereich“ als Argument und das Schlüsselwort „Let“ ermöglicht es uns, eine variable "Triple" zu deklarieren, die einen Wert als "Bereich" -Feldwert multipliziert mit 3 nimmt. Die Return -Anweisung wird zurückgegeben und das in der dreifache Variablen berechnete Ergebnis angezeigt. Daher zeigt die Ausgabe der nachstehenden Anweisungen insgesamt 5 Felder für jedes Dokument des Testfeldes an. Das Feld „Area -Triplled“ wurde durch die Verwendung einer benutzerdefinierten Funktion erzeugt, die den Bereich für alle drei Städte im Feld „Stadt“ jedes Dokuments durch Multiplizieren des Feldwerts der Fläche mit 3 zeigt.

Test> db.Prüfen.Aggregate ([$ addfields: aaaTripled: $ function: body: function (area) let triple = area*3; return '$ triple', args: ["$ area"], Lang: " JS "])
[
_id: objectId ("63cffd7d64f216739d14b251"), Titel: 'USA', City: ['Newyork', 'Chicago', 'Boston'], Gebiet: 234567, Area -Tripled: '703701',
oder,
oder,
oder,
_id: objectId ("63cffd7d64f216739d14b255"), Titel: 'Antarctica', City: ['Villa Las Estrellas', 'King Edward Point', 'Grytvkin'], Gebiet: 2835997, Area -Tripled: '850791']

Abschluss

Der Artikel befasst sich mit den benutzerdefinierten Funktionen in MongoDB und zeigt, wie eine MongoDB. Danach haben wir die Sammlung erstellt und Datensätze eingefügt, bevor wir den benutzerdefinierten $ -Funktion Operator verwenden. Nach dem Einstellen der Umgebung haben wir zwei Beispiele verwendet, um die Verwendung der benutzerdefinierten $ -Funktion zu veranschaulichen. Die Beispiele deckten die Verwendung eines benutzerdefinierten $ -Funktion Operator, um ein neues Datenfeld mit Hilfe bereits eingefügter Felder der Sammlung zu erstellen und über die Verwendung der Variablenerklärung durch die Verwendung des Schlüsselworts „LET“ auch Berechnungen durchzuführen.