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" )