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ąsTeraz 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(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.