Najlepszy samouczek MongoDB regex W 2024 r. W tym samouczku możesz dowiedzieć się Korzystanie z wyrażeń regularnych,Wyrażenia regularne wielkości liter,Elementy tablicy przy użyciu wyrażeń regularnych,Optymalizacja wyrażeń regularnych zapytanie,
Wyrażenia regularne są używane do opisania zastosowanie pojedynczego łańcucha, zgodnie z serią składniowej zasady dopasowania ciąg.
Wiele języków programowania obsługują wyrażeń regularnych do operacji łańcuchowych.
MongoDB używa $ Operator regex ustawić ciąg pasujący do wyrażenia regularnego.
MongoDB wykorzystuje PCRE (Perl Compatible Regular Expression) jako zwykły język ekspresji.
W przeciwieństwie do wyszukiwania pełnotekstowego, używamy wyrażenia regularnego nie musi wykonywać żadnej konfiguracji.
Rozważmy następujący zestaw dokumentów struktury stanowisk, dokument zawiera treści artykułu i na etykiecie:
{ "post_text": "enjoy the mongodb articles on tutorialspoint", "tags": [ "mongodb", "tutorialspoint" ] }
Następujące polecenia używać wyrażeń regularnych znaleźć artykuł zawiera w3cschool.cc ciągi:
>db.posts.find({post_text:{$regex:"w3cschool.cc"}})
Powyższe zapytanie można również zapisać jako:
>db.posts.find({post_text:/w3cschool.cc/})
Jeśli chcesz, aby pobrać wielkości liter, możemy ustawić opcje $ za $ i.
Następujące polecenie znajdzie wielkosc liter ciąg w3cschool.cc:
>db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})
Kolekcja powróci wszystkich danych zawierających w3cschool.cc ciąg nie jest uwzględniana wielkość liter:
{ "_id" : ObjectId("53493d37d852429c10000004"), "post_text" : "hey! this is my post on W3Cschool.cc", "tags" : [ "tutorialspoint" ] }
Możemy również użyć wyrażeń regularnych w polu tablicy znaleźć treści. Funkcja ta jest przydatna w realizacji etykiecie, jeżeli trzeba znaleźć etykieta zawiera dane (samouczek lub tutoriale lub tutorialpoint lub tutorialphp) Samouczek na początku, można użyć następującego kodu:
>db.posts.find({tags:{$regex:"tutorial"}})
Jest użycie wyrażeń regularnych istnieją dwa punkty do odnotowania:
Wyrażenia regularne przy użyciu zmiennych. Pamiętaj, aby użyć kombinacji ciąg eval konwertuje po nie mogą być bezpośrednio przekazywane do wyrażenia konkatenacji. W przeciwnym razie nie ma komunikatu o błędzie, ale wynik jest pusty! Przykłady są następujące:
var name=eval("/" + 变量值key +"/i");
Poniżej znajduje się rozmyty zapytanie zawiera Tytuł Hasło nie jest uwzględniana wielkość liter:
title:eval("/"+title+"/i") // 等同于 title:{$regex:title,$Option:"$i"}