MongoDB Regex Queries

MongoDB Regex Queries
Czasami nie znamy wartości powiązanej z polem w dokumencie. Stąd użyliśmy wyrażenia regularnego MongoDB, aby określić określone dopasowania dla dokumentu. Wyrażenia regularne są ważnym elementem programowania, który analizuje różne kolekcje wzorów, głównie struny. Używamy operatora $ Regex jako wyrażenia regularnego w MongoDB, aby zidentyfikować wzór w ciągu. Funkcje wyrażeń regularnych zapewniają operator $ Regex do dopasowywania wzoru ciągów w zapytaniach.

Jak zapytań o dopasowanie Regex w MongoDB?

Operator $ Regex pozwala nam wyszukać określony ciąg w określonej kolekcji. Operator $ Regex umożliwia użycie wyrażeń regularnych do dopasowania ciągów wzorów w zapytaniach. MongoDB zapewnia w ten sposób strukturę operatora $ Regex: : $ regex: „wzór”, $ opcje: '', gdzie klucz reprezentuje nazwę kolumny, do której dostarczany jest $ Regex, aby pasował do formularza wzorca formularza dokument. „Opcje $” jest opcjonalne w zapytaniu dopasowującym wzorce i zawiera różne opcje, które mają różne funkcje. Użyjemy niektórych opcji z przykładowymi zapytaniami. Tutaj użyliśmy bazy danych „nauczycieli”, która jest używana do wykonywania operacji $ Regex. Użyliśmy zapytania InsertMany do umieszczenia czterech dokumentów zawierających trzy pola: „Nazwa”, „kurs” i „klasy”. Zapytanie do wkładania dokumentów do kolekcji „Nauczyciele” MongoDB jest podane w następujący sposób:

db.Nauczyciele.wstrząs

„Nazwa”: „Paul”,
„Kurs”: „Opracowywanie stron internetowych”,
„Zajęcia”: [„It”, „CS”, „SE”]
,

„Nazwa”: „Peter”,
„Kurs”: „Konta”,
„Zajęcia”: [„SE”, „BBA”, „It”]
,

„Nazwa”: „Katherin”,
„Kurs”: „rachunek różniczkowy”,
„Zajęcia”: [„BBA”, „CS”, „It”]
,

„Nazwa”: „Daniel”,
„Kurs”: „Python”,
„Zajęcia”: [„It”, „CS”]

])

Teraz wszystkie dokumenty są wkładane do kolekcji „nauczycieli” pomyślnie. Możemy łatwo użyć pola do dopasowywania wzorców do operatora $ Regex.

Przykład nr 1: Korzystanie z operatora $ Regex w MongoDB w celu dopasowania wartości.

Tutaj używamy operatora $ Regex, aby dopasować wartość klucza pozycji. Podaliśmy „nazwę” pola w metodzie Find (). Następnie przedstawiliśmy wyrażenie regularne „$ Regex:„^Paul ””, w którym $ Regex jest zatrudniony w celu dopasowania wartości „Paul” dla pola „Nazwa”. Struktura zapytania $ Regex jest podana poniżej. Metoda foreach () jest dostarczana z parametrem „printJSON”, który pokazuje każdy dokument podany przez zapytanie $ Regex Operator bardziej wydajnie.

db.Nauczyciele.Znajdź (name: $ regex: "^Paul").Foreach (printJson)

Dokument, którego pola „nazwa” jest dopasowana do ciągu „Paul”, jest pobierany na następującym obrazie powłoki:

Przykład nr 2: Korzystanie z operatora $ Regex w MongoDB, który zaczyna się od określonego znaku.

Czasami zamierzamy zidentyfikować pole, które zaczyna się od konkretnego znaku, a następnie $ Regex służy do ustalenia kryteriów wyboru. Tutaj podaliśmy proste zapytanie, w którym ustaliliśmy metodę Find (), która przyjmuje pole „nazwa” pola. Następnie określiliśmy wyrażenie regularne „name: $ regex:„ p ”” do tego pola w celu dopasowania wzorca. Operator $ Regex dopasował tylko te nazwy nauczycieli, które zaczynają się od postaci „P” w dokumentach. Dokument zostanie wydrukowany w formacie JSON metodą foreach ().

db.Nauczyciele.Znajdź (name: $ regex: "p").Foreach (printJson)

Mamy tylko dwa dokumenty wydrukowane poniżej, które pasowały do ​​określonego wzoru operatora $ Regex, że postać powinna zacząć od „P”.

Przykład nr 3: Korzystanie z operatora $ Regex w MongoDB, który kończy się wymaganym znakiem.

Podobnie jak w poprzednim przykładzie zapytania operatora $ Regex, pobraliśmy dokumenty, których pierwszy znak zaczyna się od postaci określonej w wyrażeniu $ Regex. Tutaj odzyskaliśmy dokument, którego pole „nazwa” kończy się postacią „L”. Symbol „$” jest używany z postacią „L”, który zapewnia, że ​​ciąg kończy się z tym konkretnym znakiem. Regularny wzór „$ Regex:„ L $ ”” jest przypisany do operatora $ Regex, który wyszukuje ten konkretny wzór z dokumentu.

db.Nauczyciele.Znajdź (name: $ regex: „l $”).ładny()

Kiedy wykonywane jest zapytanie dopasowywania wzorca, wyświetla tylko te dokumenty, których kolumna „Nazwa” nauczyciela kończy się z postacią „L”. Dokumenty wyjściowe są wyświetlane na poniższym obrazku powłoki MongoDB:

Przykład nr 4: Korzystanie z operatora $ Regex w MongoDB z operatorem $.

Operator $ Regex dostarczył również różne opcje, które można ustawić za pomocą operatora $. W tym przykładzie zastosowaliśmy wyrażenie regularne w okolicznościach wrażliwych na przypadek, w których parametr „I” jest używany w operatorze $. $ Wartość opcji „I” odpowiada górnym i dolnym wzorom alfabetu w ciągu. Struktura zapytania jest podawana w miejscu, w którym pola „kurs” jest przypisany wyrażeniem regularnego dopasowania wzorca dla scenariuszy wrażliwych na sprawę. Wyrażenie „$ Regex:„ Python ”, $ opcje:„ i ' ”przeszukuje ciąg„ Python ”, a opcja $ służy do dopasowania dolnej i górnej skrzynki ciągu„ Python ”.

db.Nauczyciele.Znajdź (kurs: $ regex: „pyhon”, $ opcje: 'i').ładny()

Wynik wyświetlał dokument, którego pola „kurs” obejmuje ciąg rozrażający przypadek „Python”.

Przykład nr 5: Korzystanie z operatora $ Regex w MongoDB, który pasuje do wartości z tablicy.

Zasada wyrażenia regularnego można również wdrożyć dla tablic wewnątrz dokumentów. Wyrażenie regularne jest niezbędne, gdy zajmujemy się tagami. Tutaj mamy zapytanie regularne do dopasowania wartości znacznika. Podaliśmy wyrażenie classes: $ regex: „it” do metody find (). Wyrażenie jest dostarczane z „klasami” pola, które są wdrażane z wyrażeniem regularnym. Operator $ Regex jest stosowany do wyrażenia regularnego z wzorem „IT”. Operator $ Regex przeszukuje wzór „IT” z tego pola tablicy „Klasy”.

db.Nauczyciele.Znajdź (classes: $ regex: „it”)

Operator $ Regex zwrócił wszystkie dokumenty poniżej, których wartości tablicy zawierały wzór „IT”.

Przykład nr 6: Korzystanie z operatora $ Regex w MongoDB w metodzie agregacji.

Metoda agregacji zawiera tylko operator zapytania $ Regex wraz z $ Match Etape. Tak więc funkcjonalność $ Regex jest wykonywana przez $ RegexMatch Operator. Tutaj nazwaliśmy metodę agregate () w kolekcji „nauczycieli”. Następnie użyliśmy $ addfields, które przyjmują atrybut „wyniki”, aby wygenerować dane wyjściowe z określonego wyrażenia. Wyrażenie „$ RegexMatch: input:„ $ kurs ”, Regex:/Concation/”, w którym operator „$ RegexMatch” jest używany do wprowadzania pola „$ kurs”, który pasował do wzoru „Regex” „/Konta” /".

db.Nauczyciele.agregat(
[$ addFields: wyniki: $ RegexMatch: input: „$ kurs”, Regex: / Concation /])))))

Dokumenty, których nazwa kursu to konta, są wynikające z prawdziwej wartości, a pozostałe wyniki dokumentów są wyświetlane z wartością fałszywą.

Wniosek

Zapytania $ Regex są używane do znalezienia wzorów i znaków w ciągu. Tutaj zbadaliśmy wyrażenie regularne do dopasowywania wzorców za pomocą operatora $ Regex w kryteriach wyboru. Ponadto mamy opcje $, które są również używane z $ Regex w wyrażeniu regularnym, aby dopasować wzór. Następnie wykonaliśmy wyrażenie regularne w tablicy i dla techniki agregacji z etapem $ Regexmatch.