MongoDB Indexing Tutorial - createIndex (), dropindex () Beispiel

Inhaltsverzeichnis:

Anonim

Indizes sind in jeder Datenbank sehr wichtig, und bei MongoDB ist das nicht anders. Durch die Verwendung von Indizes wird das Ausführen von Abfragen in MongoDB effizienter.

Wenn Sie eine Sammlung mit Tausenden von Dokumenten ohne Index hatten und dann nach bestimmten Dokumenten fragen, müsste MongoDB in diesem Fall die gesamte Sammlung scannen, um die Dokumente zu finden. Wenn Sie jedoch Indizes hätten, würde MongoDB diese Indizes verwenden, um die Anzahl der Dokumente zu begrenzen, die in der Sammlung durchsucht werden mussten.

Indizes sind spezielle Datensätze, in denen ein Teil der Daten der Sammlung gespeichert ist. Da die Daten teilweise sind, wird es einfacher, diese Daten zu lesen. Diese Teilmenge speichert den Wert eines bestimmten Feldes oder eine Menge von Feldern, die nach dem Wert des Feldes geordnet sind.

In diesem Tutorial lernen Sie -

  • Auswirkungen von Indizes verstehen
  • So erstellen Sie Indizes: createIndex ()
  • So finden Sie Indizes: getindexes ()
  • So löschen Sie Indizes: dropindex ()

Auswirkungen von Indizes verstehen

Obwohl wir bereits in der Einführung gesehen haben, dass Indizes gut für Abfragen geeignet sind, können zu viele Indizes andere Vorgänge wie das Einfügen, Löschen und Aktualisieren verlangsamen.

Wenn häufig Einfüge-, Lösch- und Aktualisierungsvorgänge für Dokumente ausgeführt werden, müssen die Indizes so oft geändert werden, was nur einen Overhead für die Sammlung darstellt.

Das folgende Beispiel zeigt ein Beispiel dafür, welche Feldwerte einen Index in einer Sammlung bilden können. Ein Index kann entweder auf nur einem Feld in der Sammlung oder auf mehreren Feldern in der Sammlung basieren.

Im folgenden Beispiel werden die Mitarbeiter-ID "1" und der Mitarbeiter-Code "AA" verwendet, um die Dokumente in der Sammlung zu indizieren. Wenn also eine Abfragesuche durchgeführt wird, werden diese Indizes verwendet, um die erforderlichen Dokumente in der Sammlung schnell und effizient zu finden.

Selbst wenn die Suchabfrage auf dem EmployeeCode "AA" basiert, wird dieses Dokument zurückgegeben.

So erstellen Sie Indizes: createIndex ()

Das Erstellen eines Index in MongoDB erfolgt mit der Methode " createIndex ".

Das folgende Beispiel zeigt, wie Sie der Sammlung einen Index hinzufügen. Nehmen wir an, wir haben dieselbe Employee-Sammlung mit den Feldnamen "Employeeid" und "EmployeeName".

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

Code Erläuterung:

  1. Mit der Methode createIndex wird ein Index erstellt, der auf der "Mitarbeiter- ID " des Dokuments basiert.
  2. Der Parameter '1' gibt an, dass beim Erstellen des Index mit den Feldwerten "Employeeid" diese in aufsteigender Reihenfolge sortiert werden sollen. Bitte beachten Sie, dass sich dies vom Feld _id unterscheidet (das Feld id wird verwendet, um jedes Dokument in der Sammlung eindeutig zu identifizieren), das von MongoDB automatisch in der Sammlung erstellt wird. Die Dokumente werden nun nach der Mitarbeiter-ID und nicht nach dem Feld _id sortiert.

Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt:

Ausgabe:

  1. Das numIndexesBefore: 1 gibt die Anzahl der Feldwerte (die tatsächlichen Felder in der Auflistung) an, die sich in den Indizes befanden, bevor der Befehl ausgeführt wurde. Denken Sie daran, dass jede Sammlung das Feld _id enthält, das auch als Feldwert für den Index zählt. Da das _id-Indexfeld beim erstmaligen Erstellen Teil der Auflistung ist, beträgt der Wert von numIndexesBefore 1.
  2. Das numIndexesAfter: 2 gibt die Anzahl der Feldwerte an, die in den Indizes vorhanden waren, nachdem der Befehl ausgeführt wurde.
  3. Hier gibt die Ausgabe "ok: 1" an, dass der Vorgang erfolgreich war, und der neue Index wird der Sammlung hinzugefügt.

Der obige Code zeigt, wie ein Index basierend auf einem Feldwert erstellt wird. Sie können jedoch auch einen Index erstellen, der auf mehreren Feldwerten basiert.

Das folgende Beispiel zeigt, wie dies getan werden kann.

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

Code Erläuterung:

  1. Die Methode createIndex berücksichtigt jetzt mehrere Feldwerte, wodurch der Index basierend auf der "Employeeid" und dem "EmployeeName" erstellt wird. Die Employeeid: 1 und EmployeeName: 1 geben an, dass der Index für diese 2 Feldwerte erstellt werden soll, wobei: 1 angibt, dass er in aufsteigender Reihenfolge sein soll.

So finden Sie Indizes: getindexes ()

Das Finden eines Index in MongoDB erfolgt mithilfe der Methode "getIndexes" .

Das folgende Beispiel zeigt, wie dies getan werden kann.

db.Employee.getIndexes()

Code Erläuterung:

  1. Die Methode getIndexes wird verwendet, um alle Indizes in einer Sammlung zu finden.

Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt:

Ausgabe:

  1. Die Ausgabe gibt ein Dokument zurück, das nur anzeigt, dass die Auflistung zwei Indizes enthält, nämlich das Feld _id und das andere das Feld Employee id. Die: 1 gibt an, dass die Feldwerte im Index in aufsteigender Reihenfolge erstellt werden.

So löschen Sie Indizes: dropindex ()

Das Entfernen eines Index in MongoDB erfolgt mithilfe der dropIndex-Methode.

Das folgende Beispiel zeigt, wie dies getan werden kann.

db.Employee.dropIndex(Employeeid:1)

Code Erläuterung:

  1. Die dropIndex-Methode verwendet die erforderlichen Feldwerte, die aus dem Index entfernt werden müssen.

Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt:

Ausgabe:

  1. Das nIndexesWas: 3 gibt die Anzahl der Feldwerte an, die in den Indizes vorhanden waren, bevor der Befehl ausgeführt wurde. Denken Sie daran, dass jede Sammlung das Feld _id enthält, das auch als Feldwert für den Index zählt.
  2. Die Ausgabe ok: 1 gibt an, dass der Vorgang erfolgreich war und das Feld "Employeeid" aus dem Index entfernt wird.

Um alle Indizes in der Sammlung gleichzeitig zu entfernen, können Sie den Befehl dropIndexes verwenden.

Das folgende Beispiel zeigt, wie dies gemacht werden kann.

db.Employee.dropIndex()

Code Erläuterung:

  1. Die dropIndexes-Methode löscht alle Indizes mit Ausnahme des _id-Index.

Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt:

Ausgabe:

  1. Das nIndexesWas: 2 gibt die Anzahl der Feldwerte an, die in den Indizes vorhanden waren, bevor der Befehl ausgeführt wurde.
  2. Denken Sie erneut daran, dass jede Sammlung das Feld _id enthält, das auch als Feldwert für den Index zählt und von MongoDB nicht entfernt wird. Dies wird in dieser Nachricht angegeben.
  3. Die Ausgabe ok: 1 gibt an, dass der Vorgang erfolgreich war.

Zusammenfassung

  • Das Definieren von Indizes ist wichtig für eine schnellere und effizientere Suche in Dokumenten in einer Sammlung.
  • Indizes können mit der Methode createIndex erstellt werden. Indizes können nur für ein Feld oder mehrere Feldwerte erstellt werden.
  • Indizes können mithilfe der Methode getIndexes gefunden werden.
  • Indizes können entfernt werden, indem der dropIndex für einzelne Indizes oder dropIndexes zum Löschen aller Indizes verwendet werden.