Utwórz kolekcję
Zacznij od tworzenia nowej kolekcji bazy danych w banku bazy danych. Polecenie załączone poniżej to tworzenie nowej kolekcji o nazwie „Dane” w naszej bazie danych MongoDB „Test”. Odpowiedź OK: 1 wskazuje, że kolekcja została pomyślnie utworzona i można ją dalej wykorzystać.
Test> db.CreateCollection („Data”)Wstaw rekordy do kolekcji
Na początku tworzenia kolekcji musi być pusta, ponieważ nie dodaliśmy jeszcze żadnych dokumentów. Aby wykonać operator strcasecmp w kolekcji „danych”, powinien mieć dokumenty. Dlatego będziemy używać funkcji MongoDB InsertMany, aby dodać liczne rekordy do kolekcji o nazwie „dane” jednocześnie. Wkładane dokumenty mają format par kluczowych, z klawiszami „tytuł” i „desc” i ich odpowiednimi wartościami. Wartości wstawiane to „John”, „John”, „Idk” i „Lisa” dla klucza „Tytuł” i „A Random Guy”, „Good Boy”, „Idontkw” i „Enginerer” dla „ Klucz DESC ”. Poleceniem jest dodanie 4 nowych dokumentów. Dane wyjściowe pokazuje „uznane” jako wartość logiczną, która jest ustawiona na true, wskazując, że zapytanie zostało potwierdzone i wykonane przez serwer MongoDB.
Test> db.Dane.InsertMany ([tytuł: „John”, desc: „losowy facet”, tytuł: „John”, desc: „dobry chłopiec”, tytuł: „idk”, desc: „idontow”, tytuł : „Lisa”, DESC: „Enginnerer”])Wyświetl rekordy kolekcji
Po włożeniu w sumie 4 rekordów w kolekcji „danych” bazy danych „testowych” powinniśmy zweryfikować dokumenty przynajmniej raz. Dlatego musimy wyświetlić wstawione rekordy w skorupce MongoDB do oglądania. Polecenie do przeglądania rekordów zostało załączone poniżej. Korzystając z metody MongoDB Find (), odzyskaliśmy wszystkie dokumenty kolekcji „danych”. Pusty obiekt przekazany jako argument do metody FINK () oznacza, że nie zastosowano warunku filtrowania, a wszystkie dokumenty w kolekcji zostaną zwrócone. Dane wyjściowe tego polecenia jest szereg dokumentów, z których każdy zawiera pól _id, tytuł i desc oraz ich odpowiednie wartości, które zostały dodane wcześniej w kolekcji. Wyjście potwierdza, że dokumenty są obecne w kolekcji i można je odzyskać w celu dalszego przetwarzania.
Test> db.Dane.znajdować()Przykład nr 01:
W naszej pierwszej ilustracji MongoDB będziemy używać operatora Strcasecmp do porównania dwóch wartości ciągów: porównanie wrażliwości przypadków. W tym celu uruchomimy zapytanie pokazane poniżej w powładzie MongoDB, która wykorzystuje funkcję agregatów MongoDB do wykonywania serii operacji na zbiorze o nazwie „Dane”. Pierwsza operacja to etap projektu $, który modyfikuje dokumenty w kolekcji poprzez dodanie lub usuwanie pól. W tym przypadku etap $ Project wyświetli wszystkie rekordy pola „Tytuł” wraz z dodaniem nowego pola o nazwie „Wynik” do każdego dokumentu, który jest wynikiem porównania wartości pola „Tytuł” do ciąg „IDK” za pomocą operatora $ strcasecmp.
Porównanie jest bezsensowne, co oznacza, że „John” i „Jan” byłyby uważane za równe. Nowe pole „Wynik” wyświetla wyjście porównania pola „Tytuł” z „IDK”. 0 Na trzecim rekordie pokazuje, że ciąg „id” jest równy ciągu „idk” w polu „Tytuł”, podczas gdy reszta to 1.
Test> db.Dane.agregate ([$ projekt: tytuł: 1, wynik: $ strcasecmp: [„$ title”, „idk”]])))Przykład nr 02:
Miejmy nową ilustrację porównywania ciągów w sposób bezsensowny w ramach bazy danych MongoDB. Tym razem kod, którego używamy, wykorzystuje tę samą funkcję agregatów do przeprowadzenia porównania na polu „tytuł”. Etap projektu $ tworzy nowe pole o tej samej nazwie: „wynik”, który przechowuje wyniki porównawcze. Do porównania używamy tego samego operatora $ strcasecmp. Operator $ strcasecmp jest przekazywany z dwoma argumentami: „$ tytuł”, który jest wartością pola „Tytuł” w każdym dokumencie, oraz „John”, który jest ciągiem używanym jako wartość porównawcza. W tym przykładzie pierwszy dokument ma pole „Jana”, które jest równe „Johnowi”, więc wynik to 0.
Drugi dokument ma pole „tytułu” „Jana”, które jest również równe „Johnowi”, ale w wielkim poziomie. Tak więc „wynik” wynosi również 0. Trzeci dokument ma pole „tytułu” „IDK”, które jest mniejsze niż „John” pod względem kolejności leksykograficznej, więc wynik wynosi -1. Czwarty dokument ma pole „tytułu” „Lisa”, które jest większe niż „John” pod względem porządku leksykograficznego, więc wynik wynosi 1.
Test> db.Dane.agregate ([$ projekt: tytuł: 1, wynik: $ strcasecmp: [„$ title”, „John”]])))Przykład nr 03:
Na naszej ostatniej ilustracji będziemy używać pola „DESC” kolekcji „danych” do porównania z nowym ciągiem. Operator $ strcasecmp jest przekazywany dwa argumenty: „$ desc”, który jest wartością pola „DESC” w każdym dokumencie i „idontow”, który jest ciągiem używanym jako wartość porównawcza.
Pierwszy, drugi i czwarty dokumenty mają pole „DESC” „losowego faceta”, które jest mniejsze lub większe niż ciąg „idontow” pod względem porządku leksykograficznego. Tak więc wynik tych rekordów jest -1. Trzeci dokument ma pole „DESC” „Idontknow”, które jest równe „idontow”, niezależnie od przypadku liter, więc wynik to 0.
Test> db.Dane.agregate ([$ projekt: desc: 1, wynik: $ strcasecmp: [„$ desc”, „idontow”]]))Wniosek
Niniejszy przewodnik przedstawia koncepcję i zastosowanie operatora Strcasecmp MongoDB. Stworzyliśmy nową kolekcję i wykonaliśmy polecenia funkcyjne agregate () wraz z operatorem strcasecmp, aby zademonstrować użycie operatora Strcasecmp. Przykłady zastosowane w tym artykule pokazują, w jaki sposób można porównać pojedynczy ciąg i niewrażliwie z wartościami pól kolekcji.