To rozdział wprowadza indeksy MongoDB. Podobnie jak w MYSQL, MongoDB również obsługuje indeksy. Różnica polega na tym, że MongoDB pozwala dodawać indeksy do dowolnego zagnieżdżonego pola struktury JSON, z takim samym celem poprawy efektywności zapytań.
Rodzaje indeksów MongoDB
Indeks pojedynczego pola
Podobnie jak w MYSQL, tworzenie indeksu dla pojedynczego pola
Format:
db.kolekcja.createIndex( { nazwa_pola: kierunek_sortowania(1 lub -1) } )
Uwaga: Kierunek sortowania 1 oznacza porządek rosnący, a -1 oznacza porządek malejący.
Przykład 1:
db.rekordy.createIndex( { wynik: 1 } )
Tworzy indeks dla pola wynik.
Przykład 2:
db.rekordy.createIndex( { "lokalizacja.wojewodztwo": 1 } )
Tworzy indeks dla zagnieżdżonego pola JSON lokalizacja.wojewodztwo.
Indeks złożony
Podobnie jak w MYSQL, kilka pól może być połączonych, aby utworzyć indeks, przyspieszając prędkość złożonych zapytań.
Format:
db.kolekcja.createIndex( { <pole1>: <typ>, <pole2>: <typ2>, ... } )
Przykład:
db.produkty.createIndex( { "produkt": 1, "stan": 1 } )
Tworzy złożony indeks dla pól produkt i stan, oba w porządku rosnącym (1 oznacza porządek rosnący).
Indeks tekstu (Indeks pełnotekstowy)
Indeks tekstowy (text) służy głównie do obsługi wyszukiwania pełnotekstowego.
Uwaga: Kolekcja pozwala tylko na jeden indeks tekstowy, ale indeks tekstowy może zawierać wiele pól.
Przykład:
db.sklepy.createIndex( { nazwa: "text", opis: "text" } )
Tworzy indeks pełnotekstowy dla pól nazwa i opis.
Uwaga: Aby uzyskać szczegółowe informacje, proszę odwołać się do sekcji Indeks pełnotekstowy.
Indeks przestrzenny (Indeks GEO)
Głównie służy do obsługi zapytań związanych z informacjami geograficznymi, głównie obsługując dwa rodzaje indeksów: 2dsphere i 2d. Aby uzyskać szczegóły, proszę odwołać się do sekcji Zapytania geoprzestrzenne.
Usuwanie indeksów
Aby wyświetlić wszystkie indeksy w kolekcji:
db.zwierzeta.getIndexes()
Aby usunąć indeks catIdx z kolekcji zwierzeta:
db.zwierzeta.dropIndex( "catIdx" )