MongoDB Regex Match -Abfragen

MongoDB Regex Match -Abfragen
Manchmal kennen wir den Wert, der dem Feld im Dokument zugeordnet ist. Daher haben wir den regulären Ausdruck von MongoDB verwendet, um die spezifischen Übereinstimmungen für das Dokument zu bestimmen. Regelmäßige Ausdrücke sind ein wichtiges Programmierelement, das verschiedene Sammlungen von Mustern analysiert, hauptsächlich die Saiten. Wir verwenden den $ regex -Operator als regulärer Ausdruck in MongoDB, um ein Muster in einer Zeichenfolge zu identifizieren. Regelmäßige Ausdrucksfunktionen bieten dem $ regex -Operator für die Übereinstimmung mit einem Stringsmuster in Abfragen.

Wie können Regex -Abfragen in MongoDB übereinstimmen??

Mit dem $ regex -Operator können wir nach einer bestimmten Zeichenfolge innerhalb einer bestimmten Sammlung suchen. Mit dem $ regex -Operator können reguläre Ausdrücke verwendet werden, um Musterketten in Abfragen zu entsprechen. Der MongoDB stellt die Struktur des $ regex -Operators auf diese Weise zur das Dokument. Die „$ option“ ist in der Musteranpassungsabfrage optional und enthält verschiedene Optionen mit unterschiedlichen Funktionen. Wir werden einige Optionen mit den Beispielanfragen verwenden. Hier haben wir die Datenbank „Lehrer“ verwendet, die für die Durchführung des $ regex -Betriebs verwendet wird. Wir haben die InsertMany -Abfrage verwendet, um vier Dokumente zu platzieren, die die drei Felder enthalten: "Name", "Kurs" und "Klassen". Die Abfrage zum Einfügen von Dokumenten in die Sammlung „Lehrer“ von MongoDB wird wie folgt angegeben:

db.Lehrer.InsertMany ([

"Name": "Paul",
"Kurs": "Webentwicklung",
"Klassen": ["es", "CS", "SE"]
,

"Name": "Peter",
"Kurs": "Konten",
"Klassen": ["SE", "BBA", "It"]
,

"Name": "Katherin",
"Kurs": "Kalkül",
"Klassen": ["BBA", "CS", "It"]
,

"Name": "Daniel",
"Kurs": "Python",
"Klassen": ["es", "CS"]

]))

Jetzt werden alle Dokumente erfolgreich in die „Lehrer“ -Kollektion eingefügt. Wir können die Felder problemlos für das Muster -Matching mit dem $ regex -Operator verwenden.

Beispiel Nr. 1: Verwenden des $ regex -Operators in MongoDB, um dem Wert zu entsprechen.

Hier verwenden wir den $ regex -Operator, um den Wert der Positionsschlüssel zu entsprechen. Wir haben das Feld "Name" in der Find () -Methode angegeben. Dann haben wir den regulären Ausdruck "$ regex:"^paul "" angegeben, in dem der $ regex mit dem Wert "Paul" für das Feld "Name" übereinstimmt. Die Struktur der $ regex -Abfrage ist unten bereitgestellt. Die Methode foreach () wird mit dem Parameter „Printjson“ bereitgestellt, der jedes Dokument zeigt, das der $ regex -Operator effizienter abfragt.

db.Lehrer.find (name: $ regex: "^paul").foreach (printjson)

Das Dokument, dessen Feld „Name“ mit der Zeichenfolge „Paul“ übereinstimmt, wird im folgenden Bild der Shell abgerufen:

Beispiel Nr. 2: Verwenden des $ regex -Operators in MongoDB, der mit dem angegebenen Zeichen beginnt.

Manchmal beabsichtigen wir, das Feld zu identifizieren, das mit dem spezifischen Charakter beginnt, und $ regex wird verwendet, um die Auswahlkriterien festzulegen. Hier haben wir eine einfache Abfrage gegeben, bei der wir die Find () -Methode festgelegt haben, die das Feld „Name“ nimmt. Dann haben wir den regulären Ausdruck "Name: $ regex:" p "" in dieses Feld für Musteranpassungen angegeben. Der $ regex -Operator stimmte nur den Namen der Lehrer ab, die mit dem Charakter „P“ in den Dokumenten beginnen. Das Dokument wird im JSON -Format von der foreach () -Methode gedruckt.

db.Lehrer.find (name: $ regex: "p").foreach (printjson)

Wir haben nur zwei Dokumente gedruckt, die dem angegebenen Muster des $ regex -Operators übereinstimmten, dass der Charakter mit „P“ beginnen sollte.

Beispiel 3: Verwenden des $ regex -Operators in MongoDB, der mit dem erforderlichen Charakter endet.

Wie im vorherigen Beispiel haben wir die Dokumente abgerufen, deren erstes Zeichen mit dem für den $ regex -Ausdruck angegebenen Charakter beginnt. Hier haben wir das Dokument abgerufen, dessen Feld „Name“ mit dem Charakter „L“ endet. Das Symbol „$“ wird mit dem Zeichen „L“ verwendet, das sicherstellt, dass die Zeichenfolge mit diesem speziellen Charakter endet. Das reguläre Muster "$ regex:" l $ "" wird dem $ regex -Operator zugewiesen, der aus dem Dokument nach diesem bestimmten Muster sucht.

db.Lehrer.find (name: $ regex: "l $").hübsch()

Wenn die Abfrage der Muster -Matching ausgeführt wird, werden nur die Dokumente angezeigt, deren Lehrer "Name" -Spalte mit dem Zeichen "L" endet. Die Ausgangsdokumente werden im folgenden Bild der MongoDB -Shell angezeigt:

Beispiel Nr. 4: Verwenden des $ regex -Operators in MongoDB mit dem $ options -Operator.

Der $ regex -Betreiber stellte auch verschiedene Optionen zur Verfügung, die über den $ Options -Operator festgelegt werden können. In diesem Beispiel haben wir einen regelmäßigen Ausdruck in einem Fall-sensitiver Umstand verwendet. $ options value "i" entspricht den oberen und unteren Alphabetmustern in der Zeichenfolge. Die Abfragestruktur wird angegeben, wo dem Positionsfeld „Kurs“ ein Ausdruck des regulären Muster-Matching für die Fallsensitivszenarien zugewiesen wird. Der Ausdruck "$ regex:" python ", $ options: 'i'" sucht nach dem Zeichenfolge "Python", und die Option $ wird verwendet, um den unteren und oberen Fall der Zeichenfolge "Python" zu entsprechen.

db.Lehrer.Find (Kurs: $ regex: "python", $ options: 'i').hübsch()

Das Ergebnis zeigte das Dokument, dessen Feld „Kurse“ die von Fall unempfindliche Zeichenfolge „Python“ umfasst, umfasst.

Beispiel 5: Verwenden des $ regex -Operators in MongoDB, der dem Wert aus einem Array entspricht.

Das Prinzip des regulären Ausdrucks kann auch für die Arrays innerhalb der Dokumente implementiert werden. Der reguläre Ausdruck ist wesentlich, wenn wir uns mit den Tags befassen. Hier haben wir eine regelmäßige Ausdrucksabfrage, um den Wert des Tags abzustimmen. Wir haben der Methode find () einen Ausdruck Klassen: $ regex: „it“ gegeben. Der Ausdruck ist mit dem Feld „Klassen“ ausgestattet, das mit dem regulären Ausdruck eingesetzt wird. Der $ regex -Operator wird auf den regulären Ausdruck mit dem Muster „IT“ angewendet. Der $ Regex -Operator sucht nach dem Muster "IT" aus diesem Array -Feld "Klassen".

db.Lehrer.find (classes: $ regex: "it")

Der $ regex -Operator hat alle folgenden Dokumente zurückgegeben, deren Array -Werte das Muster „IT“ enthielten.

Beispiel Nr. 6: Verwenden des $ regex -Operators in MongoDB innerhalb der Aggregationsmethode.

Die Aggregationsmethode enthält nur den Query -Operator $ regex zusammen mit der $ Match -Stufe. Die Funktionalität des $ regex wird also vom $ regexMatch -Operator durchgeführt. Hier haben wir die Aggregate () -Methode in der Kollektion „Lehrer“ bezeichnet. Anschließend haben wir die $ addfields verwendet, die das Attribut „Ergebnisse“ benötigen, um die aus dem angegebene Ausdruck zurückgegebene Ausgabe zu generieren. Der Ausdruck "$ regexMatch: Eingabe:" $ coirast ", regex:/accounts/" wird bereitgestellt, wobei der Bediener "$ regexMatch" verwendet wird, um das Feld "$ coirast" einzugeben, das dem "Regex" -Mustern "/Konten" übereinstimmt /".

db.Lehrer.Aggregat(
[$ addfields: Ergebnisse: $ regexMatch: Eingabe: "$ cours", regex: / accoden /])

Diese Dokumente, deren Kursname Konten sind, werden mit dem wahren Wert ausgegeben und die verbleibenden Dokumentergebnisse werden mit dem falschen Wert angezeigt.

Abschluss

Die $ regex -Abfragen werden verwendet, um Muster und Zeichen in einer Zeichenfolge zu finden. Hier haben wir den regulären Ausdruck für das Muster -Matching untersucht, indem wir den $ Regex -Operator in den Auswahlkriterien verwenden. Darüber hinaus haben wir die $ option, die auch mit dem $ regex im regulären Ausdruck verwendet werden, um dem Muster zu entsprechen. Dann führten wir den regulären Ausdruck auf dem Array und für die Aggregationstechnik mit der $ regexMatch -Stufe durch.