Výukový program pro indexování MongoDB - příklad createIndex (), dropindex ()

Obsah:

Anonim

Indexy jsou velmi důležité v jakékoli databázi a s MongoDB se to nijak neliší. S využitím indexů se provádění dotazů v MongoDB stává efektivnějším.

Pokud jste měli kolekci s tisíci dokumentů bez indexů a potom byste chtěli najít určité dokumenty, pak by MongoDB v takovém případě potřeboval naskenovat celou kolekci, aby dokumenty našel. Pokud byste ale měli indexy, MongoDB by tyto indexy použil k omezení počtu dokumentů, které musely být v kolekci prohledány.

Rejstříky jsou speciální datové sady, které ukládají částečnou část dat kolekce. Jelikož jsou data částečná, je snazší je číst. Tato částečná sada ukládá hodnotu konkrétního pole nebo sady polí seřazených podle hodnoty pole.

V tomto výukovém programu se naučíte -

  • Pochopení dopadu indexů
  • Jak vytvořit indexy: createIndex ()
  • Jak najít indexy: getindexes ()
  • Jak zahodit indexy: dropindex ()

Pochopení dopadu indexů

I když jsme od úvodu viděli, že indexy jsou dobré pro dotazy, ale příliš mnoho indexů může zpomalit další operace, jako je operace Vložit, Odstranit a Aktualizovat.

Pokud se na dokumentech provádějí časté operace vkládání, mazání a aktualizace, pak by se indexy musely často měnit, což by byla jen režie pro kolekci.

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 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 se Employeeid "1" a EmployeeCode "AA" používají k indexování dokumentů v kolekci. Když je tedy provedeno vyhledávání v dotazu, budou tyto indexy použity k rychlému a efektivnímu vyhledání požadovaných dokumentů v kolekci.

Takže i když je vyhledávací dotaz založen na EmployeeCode "AA", tento dokument by byl vrácen.

Jak vytvořit indexy: createIndex ()

Vytvoření indexu v MongoDB se provádí pomocí metody " createIndex ".

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“.

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

Vysvětlení kódu:

  1. Metoda createIndex se používá k vytvoření indexu založeného na "Employeeid" dokumentu.
  2. Parametr „1“ označuje, že když je index vytvořen s hodnotami pole „Employeeid“, měly by být řazeny vzestupně. Vezměte prosím na vědomí, že se to liší od pole _id (pole id se používá k jedinečné identifikaci každého dokumentu v kolekci), které je v kolekci vytvořeno automaticky MongoDB. Dokumenty budou nyní seřazeny podle ID zaměstnance, nikoli podle pole _id.

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

Výstup:

  1. NumIndexesBefore: 1 označuje počet hodnot Field (skutečná pole v kolekci), která byla v indexech před spuštěním příkazu. Nezapomeňte, že každá kolekce má pole _id, které se také počítá jako hodnota pole do indexu. Vzhledem k tomu, že pole _id index je součástí kolekce, když je původně vytvořeno, je hodnota numIndexesBefore 1.
  2. NumIndexesAfter: 2 označuje počet hodnot Field, které tam byly v indexech po spuštění příkazu.
  3. Zde výstup „ok: 1“ určuje, že operace byla úspěšná, a do kolekce je přidán nový index.

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

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

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

Vysvětlení kódu:

  1. Metoda createIndex nyní bere v úvahu více hodnot Field, což nyní způsobí vytvoření indexu na základě „Employeeid“ a „EmployeeName“. Employeeid: 1 a EmployeeName: 1 označuje, že index by měl být vytvořen na těchto 2 hodnotách pole s: 1 označující, ž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í metody „getIndexes“ .

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

db.Employee.getIndexes()

Vysvětlení kódu:

  1. Metoda getIndexes se používá k vyhledání všech indexů v kolekci.

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

Výstup:

  1. Výstup vrací dokument, který právě ukazuje, že v kolekci jsou 2 indexy, což je pole _id a druhým je pole ID zaměstnance. : 1 označuje, že hodnoty polí v indexu jsou vytvořeny vzestupně.

Jak zahodit indexy: dropindex ()

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

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

db.Employee.dropIndex(Employeeid:1)

Vysvětlení kódu:

  1. Metoda dropIndex přebírá požadované hodnoty Field, které je třeba z indexu odebrat.

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

Výstup:

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

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

Následující příklad ukazuje, jak toho lze dosáhnout.

db.Employee.dropIndex()

Vysvětlení kódu:

  1. 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:

  1. NIndexesWas: 2 označuje počet hodnot Field, které byly v indexech před spuštěním příkazu.
  2. Nezapomeňte znovu, že každá kolekce má pole _id, které se také počítá jako Field hodnota do indexu, a které neodstraní MongoDB, a to naznačuje tato zpráva.
  3. Výstup ok: 1 určuje, že operace byla úspěšná.

souhrn

  • Definování indexů je důležité pro rychlejší a efektivnější vyhledávání dokumentů ve sbírce.
  • Rejstříky lze vytvořit pomocí metody createIndex. Rejstříky lze vytvářet pouze pro jedno pole nebo více hodnot polí.
  • Rejstříky lze najít pomocí metody getIndexes.
  • Indexy lze odstranit pomocí dropIndexu pro jednotlivé indexy nebo dropIndexes pro zrušení všech indexů.