Einführung in MongoDB create Index

MongoDB wird von komplexen Data Mining- und Datenanalysealgorithmen verwendet, um die Daten, mit denen sie arbeiten, zu verwalten, zu ändern und zu ordnen. Die Daten, mit denen sie umgehen, sind enorm und erfordern einen effizienten Umgang. Indizes in DBMS helfen bei der Steigerung der Leistung von Abfragen wie dem Abrufen und Aktualisieren von Daten. Stellen Sie sich eine Sammlung mit Hunderten von Dokumenten vor. Um Dokumente zu finden, die einem bestimmten Filter entsprechen, müsste MongoDB den Filter mit allen Dokumenten in der Sammlung abgleichen, was mühsam und zeitaufwendig ist. Anstatt Dokumente (Felder) zu indizieren, wird die Suchzeit erheblich verkürzt. In diesem Thema lernen wir MongoDB create Index kennen.

Indizes sind Datenstrukturen, die mit Teildatensätzen in sich selbst gepackt sind. Der Index speichert den Wert eines bestimmten Felds oder bestimmter Felder in Dokumenten in einer geordneten Weise, die Operationen wie Komparatoren, Äquatoren und bereichsbezogene Abfragen in sequentieller Reihenfolge unterstützt.

Die grundlegende Syntax zum Erstellen eines Index

db.collectionName.createIndex(, )

SchlüsselSchlüssel ist ein Dokument, das ein Feldwertpaar enthält, wobei das Feld der Indexschlüssel und der Wert der Indextyp ist.

Beispielsweise ist der Wert 1 für das Sortieren des Indexschlüssels in aufsteigender Reihenfolge und -1 in absteigender Reihenfolge

OptionenOption (en) ist (sind) ein Dokument, das eine Reihe von Optionen enthält, die die Erstellung von Indizes beeinflussen. Diese Optionen sind optional.

Arten von Indizes

Nachfolgend sind die Indextypen aufgeführt

1. Standard-ID

Jedes Dokument in der Mongo-Sammlung enthält einen Index

Standard genannt "_id". Eine Objekt-ID wird beim Erstellen des Dokuments erstellt, wenn keine Indexwerte vorhanden sind.

2. Einzelfeld

Die Indizierung wird für ein einzelnes Feld durchgeführt, und die Sortieroperation erfolgt entweder aufsteigend oder absteigend, da MongoDB in beide Richtungen durchlaufen kann.

Beispiel: db.collection.createIndex (("age": 1))

3. Zusammengesetzter Index

MongoDB unterstützt benutzerdefinierte Indizes in mehreren Feldern. Die Reihenfolge der Felder im zusammengesetzten Index ist sehr wichtig. Die Sortierreihenfolge erfolgt von links nach rechts, wobei die Priorität für das erste in den zusammengesetzten Indizes genannte Feld höher ist als für das nächste.

Beispiel: db.collection.createIndex (("age": 1, "dim.h": - 1)). In diesem Beispiel werden alle Dokumente mit dem Feld "Alter" zuerst in aufsteigender Reihenfolge und dann in absteigender Reihenfolge der Höhe in dim sortiert.

4. Multikey Index

MongoDB verwendet Multikey Index, um Daten in einem Array-Format zu indizieren. Während der Indizierung wird für jedes Element im Array ein separater Index erstellt, und die Daten werden basierend auf den im Array vorhandenen Elementen indiziert. MongoDB achtet darauf, dass das Indexfeld standardmäßig ein Array enthält.

5. Geospatial Index

MongoDB verwendet die Geospatial-Indizierung, um Daten basierend auf ihrem Standort zu finden. Es werden zwei Arten der Suche unterstützt: 2D (zweidimensional) und 3D (dreidimensional). Diese Indizes werden verwendet, um Ergebnisse innerhalb eines Bereichs zu erhalten. Die Anzahl der Suchergebnisse kann auch mithilfe der Funktion limit () begrenzt werden.

Beispiel: db.players.find ((loc: ($ near: ($ geometry: (type: "high_school", sport: "basketball" age: (14, 17))))). In diesem Beispiel werden alle Einträge von Schülern gefunden, die in der Schule sind, Basketball spielen und im Alter von 14 bis 17 Jahren sind.

6. Textindex

MongoDB bietet eine Textindizierung zur Unterstützung von Abfragen im Zeichenfolgenformat. Der Textindex kann beliebige Felder enthalten, die aus Zeichenfolgenelementen oder einem Array von Zeichenfolgenelementen bestehen.
Beispiel: db.movies.find (($ text: ($ search: “tom hardy”)). In diesem Beispiel werden alle Dokumente mit Schauspielernamen wie tom hanks, tom felton, tom hiddelson sowie robert hardy und gefunden John Hardy. MongoDB nimmt die für die Suche bereitgestellte Zeichenfolge auf und gibt alle Dokumente aus, die eine vollständige oder teilweise Suchzeichenfolge enthalten.

7. Hashed Index

MongoDB verwendet einen Hash-Index, um das Sharding zu unterstützen. Beim Hashing von Indizes wird der Hashwert der Indexfelder mithilfe einer Hashfunktion berechnet. Die Indizierung mit mehreren Schlüsseln (Array-Werte) wird nicht unterstützt. Hash-Indizes werden mit der Funktion createIndex erstellt, und der Wert des Indexfelds sollte immer "gehasht" sein.

Beispiel: db.collection.createIndex ((: “hashed”)) . Um die Dokumente mit Hash-Werten zu finden, gibt db.collection.find ((: Math.pow (2, 63))) alle Dokumente mit Hash-Indizes im Bereich 2 63 zurück.

Optionen für die Indizierung

1. Eindeutiger Index

Wie der Name schon sagt, sind eindeutige Indizes von Natur aus eindeutig. MongoDB erlaubt keine doppelten Werte, wenn ein Index mit der Option "unique" erstellt wird. Um festzulegen, dass ein Index beim Erstellen des Index eindeutig ist, sollte das folgende Format verwendet werden.

db.collection.createIndex (, (unique: true)) . Die eindeutigen Einschränkungen können auch dem zusammengesetzten Index, dem Mehrfachschlüsselindex und dem Textindex auferlegt werden.

2. Teilindex

Teilindizes indizieren Dokumente einer Sammlung basierend auf einem bestimmten Filter oder Ausdruck. Da Teilindizes indizieren, ist nur eine Untergruppe des Erfassungsspeicherbedarfs (Speicherbedarf) geringer, und dies führt auch zu einer verringerten Leistung.

Beispiel

db.pupils.createIndex ((name: 1), (partialFilterExpression: (age: ($ gt: 5)))
Filterausdrücke unterstützt:

  • $ gt, $ gte, $ lt, $ lte (größer als, größer als oder gleich, kleiner als und kleiner als oder gleich)
  • $ type-Operatoren
  • $ existiert: wahre Operation
  • Gleichheitsoperator ($ eq)
  • Logische und oder Operationen

3. TTL-Index

TTL-Indizes Eine spezielle Art von Einzelschlüsselindizes, die nach einer Zeitüberschreitung oder zu einer bestimmten Uhrzeit aus der MongoDB-Auflistung gelöscht werden können hilfreich.

Beispiel:

db.log.createIndex ((“lastModifiedDate”: 1), (expireAfterSeconds: 10000))

4. Sparse Index

Sparse-Indizes indizieren nur die Dokumente, die den Feldwert des Index enthalten. Alle anderen Dokumente, die das Feld nicht enthalten, werden ignoriert. Nicht sparsame Indizes enthalten standardmäßig alle Dokumente in den Auflistungen, wobei Null der Wert für die Felder ist, die nicht vorhanden sind.

Beispiel:

db.pupil.createIndex (("age": 1), (sparse: true))
Der Index indiziert keine Dokumente, die das Feld Alter nicht enthalten.

5. Groß- und Kleinschreibung wird nicht berücksichtigt

Groß- und Kleinschreibung unempfindliche Indizes werden verwendet, um Abfragen zu unterstützen, die Zeichenfolgenvergleiche ohne Berücksichtigung der Groß- und Kleinschreibung ausführen.

Beispiel:

db.collection.createIndex ((“key”: 1), (collation:))

Kollation:

Das Kollatierungsdokument wird verwendet, um Sprachregeln, Groß- und Kleinschreibung usw. für den Zeichenfolgenvergleich anzugeben.

Kollatierungsdokumente bestehen aus folgenden Elementen:

Fazit - MongoDB Index erstellen

Zusammenfassend ist die Indizierung entscheidend für eine schnellere Ausführung von Abfragen und die Speicherverwaltung. Indizes können erstellt, gemäß den Anforderungen der Benutzer geändert und gelöscht werden, wenn sie nicht benötigt werden.

Empfohlene Artikel

Dies ist eine Anleitung zu MongoDB create Index. Hier werden die Indextypen und Optionen für die Indizierung zusammen mit den Beispielen erläutert. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. MongoDB-Tools
  2. Was ist MongoDB?
  3. Replikation in MongoDB
  4. Vorteile von MongoDB