MongoDB – Indeksowanie

Opinie

Indeksy wspierają efektywne rozwiązywanie zapytań. Bez indeksów, MongoDB musi skanować każdy dokument kolekcji, aby wybrać te dokumenty, które pasują do zapytania. Takie skanowanie jest wysoce nieefektywne i wymaga od MongoDB przetwarzania dużej ilości danych.

Indeksy są specjalnymi strukturami danych, które przechowują niewielką część zbioru danych w formie łatwej do przemierzenia. Indeks przechowuje wartość określonego pola lub zestawu pól, uporządkowanych według wartości pola określonego w indeksie.

Metoda createIndex()

Aby utworzyć indeks, musisz użyć metody createIndex() w MongoDB.

Syntaktyka

Podstawowa składnia metody createIndex() jest następująca().

>db.COLLECTION_NAME.createIndex({KEY:1})

Tutaj klucz jest nazwą pola, na którym chcesz utworzyć indeks, a 1 jest dla porządku rosnącego. Aby utworzyć indeks w porządku malejącym musisz użyć -1.

Przykład

>db.mycol.createIndex({"title":1}){"createdCollectionAutomatically" : false,"numIndexesBefore" : 1,"numIndexesAfter" : 2,"ok" : 1}>

W metodzie createIndex() możesz przekazać wiele pól, aby utworzyć indeks na wielu polach.

>db.mycol.createIndex({"title":1,"description":-1})>

Ta metoda akceptuje również listę opcji (które są opcjonalne). Poniżej znajduje się lista –

Parametr Typ Opis
background Boolean Buduje indeks w tle, dzięki czemu budowanie indeksu nie blokuje innych działań bazy danych. Podaj wartość true, aby budować w tle. Domyślną wartością jest false.
unique Boolean Tworzy unikalny indeks, aby kolekcja nie akceptowała wstawiania dokumentów, w których klucz lub klucze indeksu pasują do istniejącej wartości w indeksie. Określenie true, aby utworzyć unikalny indeks. Domyślną wartością jest false.
name string Nazwa indeksu. Jeśli nie jest określona, MongoDB generuje nazwę indeksu przez konkatenację nazw indeksowanych pól i kolejności sortowania.
sparse Boolean Jeśli true, indeks odwołuje się tylko do dokumentów z określonym polem. Indeksy te zużywają mniej miejsca, ale zachowują się inaczej w niektórych sytuacjach (szczególnie przy sortowaniu). Domyślną wartością jest false.
expireAfterSeconds integer Wyznacza wartość w sekundach jako TTL, aby kontrolować, jak długo MongoDB zachowuje dokumenty w tej kolekcji.
weights document Waga jest liczbą z zakresu od 1 do 99,999 i określa znaczenie pola w stosunku do innych indeksowanych pól pod względem wyniku.
default_language string Dla indeksu tekstowego, język, który określa listę słów stop oraz reguły dla stemmera i tokenizera. Domyślną wartością jest English.
language_override string Dla indeksu tekstowego, określ nazwę pola w dokumencie, które zawiera, język, aby zastąpić język domyślny. Domyślną wartością jest language.

Metoda dropIndex()

Możesz upuścić określony indeks za pomocą metody dropIndex() w MongoDB.

Syntaktyka

Podstawowa składnia metody DropIndex() jest następująca().

>db.COLLECTION_NAME.dropIndex({KEY:1})

Tutaj klucz jest nazwą pliku, na którym chcesz utworzyć indeks, a 1 jest dla porządku rosnącego. Aby utworzyć indeks w porządku malejącym, musisz użyć -1.

Przykład

> db.mycol.dropIndex({"title":1}){"ok" : 0,"errmsg" : "can't find index with key: { title: 1.0 }","code" : 27,"codeName" : "IndexNotFound"}

Metoda dropIndexes()

Ta metoda usuwa wiele (określonych) indeksów na kolekcji.

Syntaktyka

Podstawowa składnia metody dropIndexes() jest następująca() –

>db.COLLECTION_NAME.dropIndexes()

Przykład

Załóżmy, że utworzyliśmy 2 indeksy w nazwanej kolekcji mycol, jak pokazano poniżej. –

> db.mycol.createIndex({"title":1,"description":-1})

Następujący przykład usuwa wyżej utworzone indeksy kolekcji mycol –

>db.mycol.dropIndexes({"title":1,"description":-1}){ "nIndexesWas" : 2, "ok" : 1 }>

Metoda getIndexes()

Ta metoda zwraca opis wszystkich indeksów w kolekcji.

Syntaktyka

Poniżej znajduje się podstawowa składnia metody getIndexes() –

db.COLLECTION_NAME.getIndexes()

Przykład

Zakładamy, że utworzyliśmy 2 indeksy w kolekcji o nazwie mycol jak pokazano poniżej –

> db.mycol.createIndex({"title":1,"description":-1})

Następujący przykład pobiera wszystkie indeksy w kolekcji mycol –

> db.mycol.getIndexes()>
Reklamy

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.