MongoDB Kurz indexování – createIndex(), dropindex() Příklad

Indexy jsou velmi důležité v každé databázi as MongoDB není tomu jinak. S použitím indexů, provádění dotazů v MongoDB stává efektivnější.

Pokud jste měli sbírku s tisíci dokumenty bez indexů a poté se dotazujete, abyste našli určité dokumenty, pak v takovém případě MongoDB bude muset naskenovat celou sbírku, aby našel dokumenty. Ale pokud jste měli indexy, MongoDB by pomocí těchto indexů omezil počet dokumentů, které bylo nutné v kolekci prohledávat.

Indexy jsou speciální datové sady, které uchovávají částečnou část dat kolekce. Protože jsou data částečná, je snazší je číst. Tato částečná sada ukládá hodnotu určitého pole nebo sady polí seřazených podle hodnoty pole.

Pochopení dopadu indexů

Nyní, i když z úvodu jsme viděli, že indexy jsou dobré pro dotazy, ale příliš mnoho indexů může zpomalit další operace, jako je operace vložení, odstranění a aktualizace.

Pokud jsou na dokumentech prováděny časté operace vkládání, odstraňování a aktualizace, pak by se indexy musely často měnit, což by pro kolekci představovalo pouze režii.

Níže uvedený příklad ukazuje příklad toho, jaké hodnoty polí by mohly tvořit index v kolekci. Index může být založen buď pouze na jednom poli v kolekci, nebo může být založen na více polích v kolekci.

V níže uvedeném příkladu je ID zaměstnance „1“ a ZaměstnanecCode „AA“ se používají k indexování dokumentů v kolekci. Takže při vyhledávání pomocí dotazu se tyto indexy použijí k rychlému a efektivnímu nalezení požadovaných dokumentů v kolekci.

Takže i když je vyhledávací dotaz založen na zaměstnanciCode „AA“, tento dokument by byl vrácen.

Pochopení dopadu indexů

Jak vytvořit indexy: createIndex()

Vytvoření indexu v MongoDB se provádí pomocí „createIndex„Metoda.

Následující příklad ukazuje, jak přidat index do kolekce. Předpokládejme, že máme stejnou kolekci zaměstnanců, která má názvy polí „Employeeid“ a „EmployeeName“.

Vytvořit indexy: createIndex()

db.Employee.createIndex({Employeeid:1})

Code Vysvětlení:

  1. Jedno createIndex metoda se používá k vytvoření indexu založeného na „ID zaměstnance“ dokumentu.
  2. Parametr '1' znamená, že když je index vytvořen s hodnotami pole „Employeeeid“, měly by být seřazeny ve vzestupném pořadí. Upozorňujeme, že se liší od pole _id (pole id se používá k jedinečné identifikaci každého dokumentu v kolekci), které je v kolekci automaticky vytvořeno MongoDB. Dokumenty budou nyní seřazeny podle pole Employeeid, nikoli podle pole _id.

Pokud je příkaz úspěšně proveden, zobrazí se následující výstup:

Výstup:

Vytvořit indexy: createIndex()

  1. NumIndexesBefore: 1 označuje počet hodnot polí (skutečných polí v kolekci), které byly v indexech před spuštěním příkazu. Pamatujte, že každá kolekce má pole _id, které se také počítá jako hodnota pole do indexu. Protože pole indexu _id je součástí kolekce při jejím prvním vytvoření, hodnota numIndexesBefore je 1.
  2. NumIndexesAfter: 2 označuje počet hodnot Field, které byly v indexech po spuštění příkazu.
  3. Zde výstup „ok: 1“ udává, že operace byla úspěšná a nový index je přidán do kolekce.

Výše uvedený kód ukazuje, jak vytvořit index založený na jedné hodnotě pole, ale lze také vytvořit index založený na více hodnotách pole.

Následující příklad ukazuje, jak to lze provést;

Vytvořit indexy: createIndex()

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Code Vysvětlení:

  • Metoda createIndex nyní bere v úvahu více hodnot Field, které nyní způsobí vytvoření indexu na základě „Employeeid“ a „EmployeeName“. Zaměstnanec:1 a EmployeeName:1 značí, že index by měl být vytvořen na těchto 2 hodnotách polí, přičemž :1 značí, že by měl být ve vzestupném pořadí.

Jak najít indexy: getindexes()

Hledání indexu v MongoDB se provádí pomocí "getIndexes" metoda.

Následující příklad ukazuje, jak to lze provést;

Najít indexy: getindexes()

db.Employee.getIndexes()

Code Vysvětlení:

  • Metoda getIndexes se používá k nalezení všech indexů v kolekci.

Pokud je příkaz úspěšně proveden, zobrazí se následující výstup:

Výstup:

Najít indexy: getindexes()

  • Výstup vrátí dokument, který pouze ukazuje, že v kolekci jsou 2 indexy, což je pole _id, a druhý je pole ID zaměstnance. :1 znamená, že hodnoty polí v indexu jsou vytvářeny ve vzestupném pořadí.

Jak vypustit indexy: dropindex()

Odstranění indexu v MongoDB se provádí pomocí metody dropIndex.

Následující příklad ukazuje, jak to lze provést;

Drop Indexy: dropindex()

db.Employee.dropIndex(Employeeid:1)

Code Vysvětlení:

  • Metoda dropIndex přebírá požadované hodnoty pole, které je třeba z indexu odstranit.

Pokud je příkaz úspěšně proveden, zobrazí se následující výstup:

Výstup:

Drop Indexy: dropindex()

  1. nIndexesWas: 3 označuje počet hodnot Field, které byly v indexech před spuštěním příkazu. Pamatujte, že každá kolekce má pole _id, které se také počítá jako hodnota pole do indexu.
  2. Výstup ok: 1 udává, že operace byla úspěšná a pole „Employeeeid“ je odstraněno z indexu.

Chcete-li odstranit všechny indexy najednou v kolekci, můžete použít příkaz dropIndexes.

Následující příklad ukazuje, jak to lze provést.

Drop Indexy: dropindex()

db.Employee.dropIndex()

Code Vysvětlení:

  • Metoda dropIndexes zruší všechny indexy kromě indexu _id.

Pokud je příkaz úspěšně proveden, zobrazí se následující výstup:

Výstup:

Drop Indexy: dropindex()

  1. nIndexesWas: 2 označuje počet hodnot Field, které byly v indexech před spuštěním příkazu.
  2. Znovu nezapomeňte, že každá kolekce má pole _id, které se také počítá jako hodnota pole do indexu, a které nebude odstraněno MongoDB a to je to, co tato zpráva ukazuje.
  3. Výstup ok: 1 udává, že operace byla úspěšná.

Shrnutí

  • Definování indexů je důležité pro rychlejší a efektivní vyhledávání dokumentů v kolekci.
  • Indexy lze vytvořit pomocí metody createIndex. Indexy lze vytvořit pouze pro jedno pole nebo více hodnot polí.
  • Indexy lze najít pomocí metody getIndexes.
  • Indexy lze odstranit pomocí metody dropIndex pro jednotlivé indexy nebo dropIndexes pro drop.ping všechny indexy.

Shrňte tento příspěvek takto: