MongoDB -Filterabfrage

MongoDB -Filterabfrage
Die MongoDB -Filteraggregation wurde in Version 3 eingeführt.2. Es wird verwendet, um eine Teilmenge eines Arrays auszuwählen und das Ergebnis basierend auf den Kriterien bereitzustellen. Der Filterbetreiber gibt eine Reihe von Einträgen zurück, die das bereitgestellte Kriterium in der Reihenfolge entsprechen, die sie gefunden wurden. Wenn wir den Filterbetreiber in MongoDB verwenden, müssen wir die Eingabe, As und Condices als Argumente bereitstellen. Eingabe und Eigentumswohnungen sind erforderliche Parameter, jedoch ist „AS“ optional. Wir müssen das $ sign vor dem Filterschlüsselwort verwenden, wenn wir den Filterbetreiber in MongoDB verwenden.

Syntax des Filterabfrage MongoDB in Ubuntu 20.04?

Der $ -Filterbetreiber stellt einem Array nur diese Elemente in der ursprünglichen Reihenfolge an, die dem Zustand entsprechen. Nachfolgend erwähnt ist die Syntax von $ Filter:

$ filter: Eingabe: , als: , Cond:
  • Filter: Der $ -Filterbetreiber wird verwendet, um ein Ergebnis zu liefern, das bestimmte Kriterien entspricht. In MongoDB haben wir den Filteroperator verwendet, um die Ergebnisse basierend auf dem in der Abfrage angegebenen Kriterium zu filtern.
  • Eingabe: Dies ist ein Array -Auflösungsausdruck. Wir haben es geschafft, das Array -Feld als Eingabeparameter zum Filtern der Datensätze zu übergeben. Bevor wir den Eingangsfeldparameter im Filteroperator verwenden, müssen wir das $ sign verwenden.
  • AS: Es ist ein Filterbetreiberargument, das optional ist. Dies ist der Name des Feldes, der als Element im Eingangsarray verwendet wurde. Dieser Parameter ist vom Zeichenfolge -Typ im Filteroperator. Mit dem Schlüsselwort "AS" greift dieser Ausdruck auf jedes Element in einem Eingabearray zu.
  • cond: Diese Option bestimmt, wo der Wert aus dem generierten Array enthalten sein soll. Dieser Parameter ist vom Expressionstyp im Filteroperator. Die Werte aus der gegebenen Sammlung wurden unter Verwendung des Ausdrucks filtriert. Wir können zahlreiche bedingte Operatoren verwenden, um Daten aus Array -Elementen zu filtern.

Wie die Filterabfrage in MongoDB in Ubuntu 20 funktioniert.04:

Ein MongoDB $ -Filterbetreiber wird verwendet, um Dokumente aus einem Array zu filtern, das auf einer Bedingung basiert, die wir in unserer Abfrage definiert haben. Basierend auf der angegebenen Bedingung gibt eine Untergruppe eines Arrays zurück. Nur die Array -Einträge, die die Anforderungen erfüllen, werden zurückgegeben. Die Elemente werden in der gleichen Anordnung wieder zusammengebaut wie zuvor.

Schauen wir uns einige Instanzen an, um Ihnen zu verstehen, was wir diskutieren. Während wir den Artikel durchgehen, möchten wir, dass Sie die Beispiele in der Mongo -Shell ausprobieren. Wir erstellen zunächst eine Datenbanksammlung, die im gesamten Artikel verwendet wird.

Hier haben wir eine Sammlung der Datenbank als „Kandidaten“ mithilfe der MongoDB -Shell definiert. Für diese Sammlung haben wir das Feld ID, Name und Marks definiert. Wir haben sieben Dokumente gleichzeitig mit der InsertMany -Abfrage eingefügt.

Die Sammlung „Kandidaten“ ruft die Find -Funktion wie in der obigen Abfrage an. Anschließend zeigt das aufgezeichnete Dokument das Feld und seine entsprechenden Werte an. Beachten Sie, dass das Array im Feld „Markierungen“ mit einigen zufälligen Werten definiert ist.

Beispiel 1: Verwenden des $ Filter -Operators in MongoDB in Ubuntu 20.04:

Der $ -Filterbetreiber wird verwendet, um die Array -Mitglieder im Feld „Markierungen“ aus der angegebenen Sammlung im folgenden Beispiel zu filtern:

Wir haben die aggregierte Abfrage zur Sammlung von „Kandidaten“ verwendet. In dieser Abfrage haben wir den $ Match -Operator, mit dem das Dokument nach der ID gefiltert wird. Wir haben dem Feld ID einen $ im Operator zugewiesen. Der $ im Bediener findet Dokumente, bei denen der Wert der ID einem Wert im angegebenen Array entspricht. Anschließend wird der $ Filter -Operator das Eingabemargument übergeben und legt seinen Wert "$ marks" fest. Der Parameter "AS" wird auch verwendet, der den Feldnamen "Marks" zurückgibt. Anschließend haben wir den Cond -Parameter angegeben, der den größeren als Operator auf dem Feld „$$ Marks“ verwendet.

Durch die Befolgung der obigen Abfrage ist das Ergebnis, das wir erhalten haben.

Beispiel 2: Verwenden des $ Filter -Operators für ein leeres Array in MongoDB in Ubuntu 20.04:

Wenn eines unserer Sammeldokumente ein leeres Array hat, gibt der Filterbetreiber ein leeres Array -Set zurück, wie hier zu sehen ist:

Innerhalb des $ Match haben wir die ID angegeben, die den $ im Bediener hat, der ID „7“ aus der Sammlung zurückgibt, da wir in einem Array „7“ angegeben haben. Anschließend hat die $ -Filter -Abfrage das Sammelfeld „Markierungen“ bereitgestellt, das ein leeres Array zurückgibt, da im Feld „Marks“ von ID "7" kein Wert gespeichert ist.

Das Ergebnis des Filterbetreibers hat hier einen leeren Satz des Dokuments.

Beispiel 3: Verwenden des $ Filter -Operators für den falschen Typ in MongoDB in Ubuntu 20.04:

Wenn wir versuchen, den $ Filter in einem Feld zu verwenden, das kein Array hat, erhalten wir einen Fehler. Das Folgende ist die Demonstration dieser Aussage.

Wir haben ein Feld "Name" aus dem Dokument gegeben, dessen ID "5" im $ Filter -Operator ist. In dem Parameter -Cond von $ filter haben wir den $ eq -Operator, der das Feld „$ name“ nimmt und dem String -Wert abgibt, der ihm definiert ist.

Wenn wir die obige Abfrage ausführen.

Beispiel 4: Verwenden des $ Filter -Operators mit der $ diese Variable in MongoDB in Ubuntu 20.04:

Wir haben den Parameter „AS“ verwendet, um der Variablen in den früheren Fällen einen Namen zu geben. Der AS -Parameter ist optional. Wenn wir dieses Feld leer einstellen, ist der Variablenname standardmäßig "dies".

Hier haben wir das Array in $ im Bediener angegeben, das die ID -Felder aus den Dokumenten der angegebenen Sammlung innerhalb der $ Match auswählt. Dann hat der $ Filter den Zwei-Parameter, die Eingabe und die Eigentumswohnung. Der Cond -Parameter hat den größeren als den Bediener, der die Markierungen von mehr als 65 abholt. Wir haben sie nicht als Parameter verwendet, stattdessen haben wir den $$ dieses Feldnamens verwendet.

Durch die Verwendung von $$, um das Feld zu verweisen, erzielten wir die gleichen Ergebnisse wie aus dem „AS“. Die Ausgabe ist mit dem $ Match -Zustand und dem im Bild angezeigten $ -Filterbedingung zufrieden.

Abschluss:

Dies ist ein MongoDB -Filterhandbuch. In diesem Artikel haben wir die Definition, die Syntax und die Funktionsweise der Filter in MongoDB durchlaufen. Beispiele und Code -Implementierung werden ebenfalls bereitgestellt. Die Elemente des Array -Feldes werden mit dem MongoDB -Filterbetreiber gefiltert. Um Daten aus Array -Elementen abzurufen, haben wir mehrere Bedingungen wie $ GT, $ LT, $ GTE und $ LTE verwendet.