Podobnie jak w przypadku każdej bazy danych, indeksy są podstawowymi strukturami danych w MongoDB. Sprzyjają łatwym zapytaniom do bazy danych oraz pozwalają przechowywać i porządkować część swojej kolekcji w unikalnych polach. Indeksy obsługują również zapytania zakresowe bez żadnych problemów.
Jeśli Twoja aplikacja korzysta z MongoDB, chcesz wykorzystać moc indeksów, aby zapytania były szybsze i wydajniejsze. Czym więc są indeksy w MongoDB i jak je tworzyć?
Czym są indeksy w MongoDB?
Indeksy w MongoDB pozwalają na nadanie priorytetu niektórym polom w dokumencie i późniejsze przekształcenie ich w parametry zapytania. Podczas tworzenia kolekcji MongoDB tworzy domyślny indeks ID. Ale możesz dodać więcej, jeśli masz wyższe zapytania lub potrzeby aranżacyjne.
Unikalne indeksy zapobiegają również duplikacjom podczas wprowadzania danych. Przydają się przy odrzucaniu wpisów, które już istnieją w bazie danych. Możesz więc na przykład użyć unikalnego indeksowania nazw użytkowników i pól e-mail.
Indeksy pomagają uchwycić dokładnie to, co chcesz, przy użyciu zdefiniowanego formatu zapytania w wymaganej ilości bez skanowania całej kolekcji. Podczas tworzenia indeksu możesz określić, w jaki sposób chcesz sortować dane, gdy je wyślesz.
Na przykład, jeśli zdecydujesz się posortować punkty danych według dat ich wprowadzenia bez użycia indeksu, zazwyczaj podajesz kryteria zapytań i porządek sortowania.
Załóżmy, że chcesz ustalić wiek wyższy niż określona liczba według ich malejącej daty wpisów. Twoje zapytanie zazwyczaj wygląda tak:
db.collectionName.find({wiek: {$gt: 50}}).sort({data: -1})
Ale jeśli masz indeks dat wpisów, wystarczy podać kryteria zapytania. Dzieje się tak, ponieważ data została już posortowana malejąco podczas tworzenia indeksu.
W takim przypadku powyższe zapytanie staje się:
db.collectionName.find({wiek: {$gt: 50}})
Jak utworzyć indeks w MongoDB
Możesz tworzyć indeksy w MongoDB za pomocą wbudowanego interfejsu powłoki. Właśnie tego użyjemy w tym samouczku.
Niemniej jednak indeksy nie istnieją same. Musisz mieć stworzył bazę danych i kolekcję zanim będzie można utworzyć indeks.
Jak już wspomnieliśmy, ważną cechą indeksowania jest to, że pozwala określić kryteria sortowania podczas tworzenia indeksu.
Na przykład indeks porządkujący wiek w odwrotnej kolejności wygląda tak:
db.userCollection.createIndex({wiek: -1})
Ujemna liczba całkowita (-1) w kodzie informuje MongoDB o uporządkowaniu wieku w odwrotnej kolejności za każdym razem, gdy zapytanie o dane za pomocą wiek indeks. W związku z tym może nie być konieczne określanie kolejności sortowania podczas zapytań, ponieważ indeks już to obsługuje.
Aby utworzyć indeks tego samego pola rosnąco, zamień -1 z 1:
db.userCollection.createIndex({wiek: 1})
Chociaż w MongoDB istnieją inne typy indeksów, w ten sposób tworzy się formularze pojedyncze i złożone — ponieważ są one najczęściej używane.
Ale zanim przejdziemy dalej, upewnij się, że: skonfigurować MongoDB serwer na twoim komputerze. Jeśli już to zrobiłeś, otwórz powłokę MongoDB i postępuj zgodnie z instrukcjami.
Utwórz pojedynczy indeks w MongoDB
Pojedyncze indeksowanie w MongoDB jest proste. Aby rozpocząć, wybierz bazę danych, która już zawiera kolekcje.
Powiedzmy, że nazwa naszej bazy danych to MUO:
użyj MUO
Po wybraniu bazy danych użyj utwórzIndeks() polecenie w powłoce, aby utworzyć pojedynczy indeks.
Na przykład, aby utworzyć pojedynczy indeks nazwy użytkownika w kolekcji i użyć go do wykonywania zapytań w odwrotnej kolejności:
db.collectionName.createIndex({nazwa użytkownika: -1})
Indeksowanie wielokluczowe w MongoDB
Indeksy wielokluczowe przydają się do indeksowania pola w złożonej tablicy danych. Na przykład kolekcja może zawierać złożone dane użytkowników wraz z ich informacjami w innej tablicy. Na przykład powiedz imię, wzrost i wiek.
Możesz utworzyć indeks wielokluczowy na wysokości każdego użytkownika w tej tablicy w następujący sposób:
db.customers.createIndex({user.height: 1})
ten wzrost w powyższym kodzie jest podzbiorem użytkownik pole.
Utwórz indeks złożony
Indeks złożony zawiera więcej niż jeden indeks. Aby utworzyć złożony indeks adresu i typu produktu w kolekcji klienta, na przykład:
db.customer.createIndex({adres: 1, produkty: 1})
Ponieważ nie podałeś nazwy podczas tworzenia powyższego indeksu, MongoDB tworzy ją domyślnie. Ale oddziela nazwę każdego indeksu podkreśleniem. Jest więc mniej czytelny, zwłaszcza jeśli masz więcej niż dwa indeksy w związku.
Aby określić nazwę podczas tworzenia indeksu złożonego:
db.customers.createIndex({lokalizacja: 1, produkty: 1, waga: -1}, {nazwa: "myCompundIndex"})
Pobierz wszystkie indeksy w kolekcji
Aby wyświetlić wszystkie indeksy w kolekcji:
db.nazwakolekcji.getIndexes()
Powyższy kod wyświetla wszystkie indeksy w nazwanej kolekcji.
Uporządkuj swoją bazę danych za pomocą indeksów
Indeksowanie w MongoDB zmniejsza opóźnienia podczas wykonywania współbieżnych zapytań. Ponadto pomagają uporządkować bazę danych i uczynić ją bardziej dostępną. Jak widać, tworzenie indeksów w MongoDB nie jest w końcu skomplikowane. Poniższe przykłady wystarczą, aby rozpocząć tworzenie indeksu. Niemniej jednak, aby zobaczyć swoje indeksy w praktyce, musisz wiedzieć, jak działa zapytania w MongoDB.
Poznawanie MongoDB jest trudne. Uderz w ziemię z CRUD.
Czytaj dalej
- Programowanie
- Pyton
- Programowanie
- Baza danych
Idowu pasjonuje się każdą inteligentną technologią i produktywnością. W wolnych chwilach bawi się kodowaniem, a gdy się nudzi, przechodzi na szachownicę, ale od czasu do czasu uwielbia też oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi do nowoczesnych technologii motywuje go do pisania więcej.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować