MongoDB – Indizierung

Werbung

Indizes unterstützen die effiziente Auflösung von Abfragen. Ohne Indizes muss MongoDB jedes Dokument einer Sammlung durchsuchen, um die Dokumente auszuwählen, die der Abfrageanweisung entsprechen. Dieser Scan ist äußerst ineffizient und erfordert von MongoDB die Verarbeitung einer großen Datenmenge.

Indizes sind spezielle Datenstrukturen, die einen kleinen Teil des Datensatzes in einer leicht zu durchsuchenden Form speichern. Der Index speichert den Wert eines bestimmten Feldes oder einer Gruppe von Feldern, geordnet nach dem Wert des Feldes, wie im Index angegeben.

Die createIndex()-Methode

Um einen Index zu erstellen, müssen Sie die createIndex()-Methode von MongoDB verwenden.

Syntax

Die grundlegende Syntax der createIndex()-Methode lautet wie folgt().

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

Hier ist key der Name des Feldes, auf dem Sie einen Index erstellen wollen und 1 steht für aufsteigende Reihenfolge. Um einen Index in absteigender Reihenfolge zu erstellen, müssen Sie -1 verwenden.

Beispiel

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

In der Methode createIndex() können Sie mehrere Felder übergeben, um einen Index für mehrere Felder zu erstellen.

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

Diese Methode akzeptiert auch eine Liste von Optionen (die optional sind). Nachfolgend die Liste –

Parameter Typ Beschreibung
Hintergrund Boolean Erstellt den Index im Hintergrund, so dass der Aufbau eines Index nicht andere Datenbankaktivitäten blockiert. Geben Sie true an, um den Index im Hintergrund zu erstellen. Der Standardwert ist false.
unique Boolean Erstellt einen eindeutigen Index, so dass die Sammlung keine Einfügung von Dokumenten akzeptiert, bei denen der Indexschlüssel oder die Schlüssel mit einem vorhandenen Wert im Index übereinstimmen. Geben Sie true an, um einen eindeutigen Index zu erstellen. Der Standardwert ist false.
name string Der Name des Indexes. Wenn er nicht angegeben ist, generiert MongoDB einen Indexnamen durch Verkettung der Namen der indizierten Felder und der Sortierreihenfolge.
sparse Boolean Wenn wahr, verweist der Index nur auf Dokumente mit dem angegebenen Feld. Diese Indizes verbrauchen weniger Platz, verhalten sich aber in einigen Situationen anders (insbesondere bei Sortierungen). Der Standardwert ist false.
expireAfterSeconds integer Gibt einen Wert in Sekunden als TTL an, um zu steuern, wie lange MongoDB Dokumente in dieser Sammlung aufbewahrt.
Gewichte Dokument Das Gewicht ist eine Zahl zwischen 1 und 99.999 und gibt die Bedeutung des Feldes im Verhältnis zu den anderen indizierten Feldern in Bezug auf die Punktzahl an.
default_language string Für einen Textindex, die Sprache, die die Liste der Stoppwörter und die Regeln für den Stemmer und Tokenizer bestimmt. Der Standardwert ist Englisch.
language_override string Für einen Textindex geben Sie den Namen des Feldes im Dokument an, das die Sprache enthält, die die Standardsprache überschreibt. Der Standardwert ist language.

Die dropIndex()-Methode

Sie können einen bestimmten Index mit der dropIndex()-Methode von MongoDB löschen.

Syntax

Die grundlegende Syntax der DropIndex()-Methode lautet wie folgt().

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

Hier ist key der Name der Datei, für die Sie einen Index erstellen wollen und 1 steht für aufsteigende Reihenfolge. Um einen Index in absteigender Reihenfolge zu erstellen, müssen Sie -1 verwenden.

Beispiel

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

Die dropIndexes()-Methode

Diese Methode löscht mehrere (angegebene) Indizes in einer Sammlung.

Syntax

Die grundlegende Syntax der DropIndexes()-Methode lautet wie folgt() –

>db.COLLECTION_NAME.dropIndexes()

Beispiel

Angenommen, wir haben 2 Indizes in der benannten mycol-Sammlung erstellt, wie unten gezeigt

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

Nachfolgendes Beispiel entfernt die oben erstellten Indizes von mycol –

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

Die Methode getIndexes()

Diese Methode gibt die Beschreibung aller Indizes in der Sammlung zurück.

Syntax

Nachfolgend ist die grundlegende Syntax der Methode getIndexes() –

db.COLLECTION_NAME.getIndexes()

Beispiel

Angenommen, wir haben 2 Indizes in der benannten mycol Sammlung erstellt –

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

Das folgende Beispiel ruft alle Indizes in der Sammlung mycol ab –

> db.mycol.getIndexes()>
Werbung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.