Wie bei jeder Datenbank sind Indizes in MongoDB wesentliche Datenstrukturen. Sie ermöglichen einfache Datenbankabfragen und ermöglichen es Ihnen, einen Teil Ihrer Sammlung in eindeutigen Feldern zu speichern und anzuordnen. Indizes unterstützen auch problemlos Bereichsabfragen.
Wenn Ihre App MongoDB verwendet, möchten Sie die Leistungsfähigkeit von Indizes nutzen, um Ihre Abfragen schneller und effizienter zu machen. Was sind Indizes in MongoDB und wie können Sie sie erstellen?
Was sind Indizes in MongoDB?
Mit Indizes in MongoDB können Sie einige Felder in einem Dokument priorisieren und später in Abfrageparameter umwandeln. Beim Erstellen einer Sammlung erstellt MongoDB einen Standard-ID-Index. Sie können jedoch weitere hinzufügen, wenn Sie höhere Fragen oder Anordnungsanforderungen haben.
Eindeutige Indizes verhindern auch Duplikate bei der Dateneingabe. Sie sind praktisch, um Einträge abzulehnen, die bereits in der Datenbank vorhanden sind. So können Sie beispielsweise eine eindeutige Indexierung für Benutzernamen und E-Mail-Felder verwenden.
Indizes helfen Ihnen, mithilfe Ihres definierten Abfrageformats in der erforderlichen Menge gezielt zu greifen, was Sie möchten, ohne eine gesamte Sammlung zu scannen. Beim Erstellen eines Index können Sie angeben, wie Ihre Daten bei jeder Abfrage sortiert werden sollen.
Wenn Sie beispielsweise Datenpunkte nach ihrem Eintrittsdatum sortieren möchten, ohne einen Index zu verwenden, geben Sie in der Regel Abfragekriterien und Sortierreihenfolge an.
Angenommen, Sie möchten Altersgruppen, die über einer bestimmten Zahl liegen, nach absteigendem Eintragsdatum ordnen. Ihre Abfrage sieht normalerweise so aus:
db.collectionName.find({age: {$gt: 50}}).sort({date: -1})
Wenn Sie jedoch einen Index für die Eintrittsdaten hätten, müssten Sie nur die Abfragekriterien angeben. Dies liegt daran, dass Sie das Datum bereits beim Erstellen des Indexes absteigend sortiert haben.
In diesem Fall lautet die obige Abfrage:
db.collectionName.find({age: {$gt: 50}})
So erstellen Sie einen Index in MongoDB
Sie können Indizes in MongoDB mithilfe der integrierten Shell-Schnittstelle erstellen. Das verwenden wir in diesem Tutorial.
Dennoch existieren Indizes nicht allein. Du musst eine Datenbank und eine Sammlung erstellt bevor Sie einen Index erstellen können.
Wie bereits erwähnt, besteht ein herausragendes Merkmal der Indexierung darin, dass Sie bei der Indexerstellung Sortierkriterien angeben können.
Ein Index, der das Alter in umgekehrter Reihenfolge anordnet, sieht beispielsweise so aus:
db.userCollection.createIndex({age: -1})
Die negative ganze Zahl (-1) im Code weist MongoDB an, das Alter in umgekehrter Reihenfolge anzuordnen, wenn Sie Daten mit dem abfragen das Alter Index. Daher müssen Sie bei Abfragen möglicherweise keine Sortierreihenfolge angeben, da der Index dies bereits behandelt.
Um einen Index desselben Felds aufsteigend zu erstellen, ersetzen Sie -1 mit 1:
db.userCollection.createIndex({age: 1})
Obwohl es in MongoDB noch andere Indextypen gibt, erstellen Sie so die einzelnen und zusammengesetzten Formen – da sie am häufigsten verwendet werden.
Aber bevor wir fortfahren, stellen Sie sicher, dass Sie eine MongoDB einrichten Server auf Ihrem PC. Wenn Sie dies bereits getan haben, öffnen Sie die MongoDB-Shell und folgen Sie den Anweisungen.
Erstellen Sie einen einzelnen Index in MongoDB
Die Einzelindizierung in MongoDB ist unkompliziert. Wählen Sie zunächst eine Datenbank aus, die bereits Sammlungen enthält.
Sagen wir, unser Datenbankname ist MUO:
MUO verwenden
Nachdem Sie eine Datenbank ausgewählt haben, verwenden Sie die createIndex() Befehl in der Shell, um einen einzelnen Index zu erstellen.
Um beispielsweise einen einzelnen Benutzernamenindex in einer Sammlung zu erstellen und ihn für Abfragen in umgekehrter Reihenfolge zu verwenden:
db.collectionName.createIndex({Benutzername: -1})
Multikey-Indizierung in MongoDB
Multikey-Indizes sind praktisch, um ein Feld in einem komplexen Datenarray zu indizieren. Eine Sammlung kann beispielsweise komplexe Daten von Benutzern mit ihren Informationen in einem anderen Array enthalten. Sagen Sie beispielsweise Name, Größe und Alter.
Sie können einen Multikey-Index für die Körpergröße jedes Benutzers in diesem Array wie folgt erstellen:
db.customers.createIndex({user.height: 1})
Der Höhe im obigen Code ist eine Teilmenge der Nutzer Bereich.
Erstellen Sie einen zusammengesetzten Index
Ein zusammengesetzter Index enthält mehr als einen Index. So erstellen Sie beispielsweise einen zusammengesetzten Index aus Adresse und Produkttyp für eine Kundensammlung:
db.customer.createIndex({Adresse: 1, Produkte: 1})
Da Sie beim Erstellen des obigen Index keinen Namen angegeben haben, erstellt MongoDB standardmäßig einen. Aber es trennt den Namen jedes Index durch einen Unterstrich. Daher ist es weniger lesbar, insbesondere wenn Sie mehr als zwei Indizes in einem Verbund haben.
So geben Sie beim Erstellen eines zusammengesetzten Index einen Namen an:
db.customers.createIndex({location: 1, products: 1, weight: -1}, {name: "myCompundIndex"})
Alle Indizes in einer Sammlung abrufen
So zeigen Sie alle Indizes in einer Sammlung an:
db.collectionName.getIndexes()
Der obige Code gibt alle Indizes in einer benannten Sammlung aus.
Organisieren Sie Ihre Datenbank mit Indizes
Die Indizierung in MongoDB reduziert die Laufzeitlatenz beim Ausführen gleichzeitiger Abfragen. Außerdem helfen sie Ihnen, Ihre Datenbank zu organisieren und zugänglicher zu machen. Wie Sie gesehen haben, ist das Erstellen von Indizes in MongoDB schließlich nicht komplex. Die Beispiele hier reichen aus, um Ihnen den Einstieg in die Indexerstellung zu erleichtern. Um Ihre Indizes in der Praxis zu sehen, müssen Sie jedoch wissen, wie Abfragen in MongoDB funktionieren.
MongoDB kennenzulernen ist schwierig. Schlagen Sie mit CRUD durch.
Weiter lesen
- Programmierung
- Python
- Programmierung
- Datenbank
Idowu hat eine Leidenschaft für alles, was smarte Technologien und Produktivität ist. In seiner Freizeit spielt er mit Programmieren und wechselt bei Langeweile aufs Schachbrett, aber er liebt es auch, ab und zu aus der Routine auszubrechen. Seine Leidenschaft, Menschen den Weg in die moderne Technik zu weisen, motiviert ihn, mehr zu schreiben.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um zu abonnieren