Single Field Index
Ein Single Field Index wird auf ein einzelnes Feld in den Dokumenten angewendet. Er ist die einfachste Form eines Indexes und wird am häufigsten verwendet.1 steht für aufsteigende Sortierung. Mit -1 wäre es absteigend.
- Schnelle Suche nach einem bestimmten Wert (
email: "test@example.com") - Auch geeignet für Sortierungen (
sort({ email: 1 }))
Compound Index
Ein Compound Index (zusammengesetzter Index) deckt mehrere Felder gleichzeitig ab.Wichtig: Die Reihenfolge der Felder ist entscheidend. Ein solcher Index kann Anfragen effizient beantworten, die mit dem ersten Feld beginnen oder mit den ersten paar Feldern – aber nicht mit einem nachfolgenden.
- Optimierung komplexer Queries mit mehreren Bedingungen
- Effiziente Sortierungen nach mehreren Feldern
Text Index
Ein Text Index erlaubt die Volltextsuche in Zeichenfolgenfeldern. Er analysiert den Text (Tokenisierung, Normalisierung) und ermöglicht Suchanfragen mit natürlicher Sprache.Abfragen
Sortieren nach Relevanz
Bei Textsuchen berechnet MongoDB für jedes Dokument einen Relevanz-Score basierend darauf, wie gut es zur Suchanfrage passt. Dieser Score kann über das spezielle FeldtextScore abgerufen werden.
Hashed Index
Ein Hashed Index speichert einen Hashwert eines Felds. Er wird vor allem für Sharding (Verteilung auf mehrere Server) verwendet.- Gleichmässige Verteilung der Daten im Cluster
- Eignet sich nicht für Bereichsanfragen (
$gt,$lt), da die Hashwerte keine Reihenfolge haben
Indexe verwalten
Du kannst dir alle Indexe einer Collection mit folgendem Befehl anzeigen lassen:Wenn ein Index nicht mehr benötigt wird oder die Performance negativ beeinflusst, kann er mit folgendem Befehl gelöscht werden:
Mit dem folgenden Befehl können wir alle Indexe innerhalb einer Collection löschen: