MongoDB erhalten Sie alle Indizes für die Sammlung

MongoDB erhalten Sie alle Indizes für die Sammlung
In diesem Artikel werden wir die beiden Hauptmethoden untersuchen, mit denen Sie die Liste aller Indizes in einer bestimmten Sammlung erhalten können. Indizes sind sehr wichtige Datenstrukturen, die zur Verbesserung der Effizienz und Leistung von Ausführungsabfragen in einer MongoDB -Sammlung verwendet werden.

In den Indizes kann der MongoDB die Dokumente, die mit einer bestimmten Abfrage übereinstimmen, schnell abrufen.

Es ist jedoch gut zu bedenken, dass dieser Beitrag den Prozess der Indexerstellung nicht abdeckt. Überprüfen Sie unser Tutorial zu diesem Thema, um mehr zu erfahren.

Lass uns hineinspringen.

Methode 1: MongoDB getIndexes () Methode

Die erste Methode, die wir diskutieren werden, ist die Methode getIndexes (). Diese Methode ist in der MongoDB -Shell erhältlich, mit der Sie alle Indizes in einer bestimmten Sammlung als Array erhalten können.

Diese Methode gibt detaillierte Informationen zu den verfügbaren Indizes zurück, einschließlich der versteckten Indizes in einem menschlichen lesbaren Format.

Die Befehlssyntax ist wie im Folgenden dargestellt:

db.Sammlung.GetIndexes ()

HINWEIS: Abhängig von der Clusterkonfiguration kann diese Methode möglicherweise den laufenden Benutzer benötigen, um die List -Indizes -Berechtigungen für die Zielsammlung zu haben.

Angenommen, wir haben eine Sammlung namens "Netflix". Wir können alle Indizes in der Sammlung erhalten, indem wir die folgende Abfrage ausführen:

db.Netflix.GetIndexes ()

Die Anfrage sollte ein Array mit den Informationen zu den verfügbaren Indizes in der Zielsammlung zurückgeben.

Eine Beispielausgabe ist wie im Folgenden dargestellt:

[
v: 2, Schlüssel: _id: 1, Name: '_id_',

v: 2,
Schlüssel: Jahr: 1, Punktzahl: -1,
Name: 'Year_index',
Zusammenfassung:
Gebietsschema: 'en',
Caselevel: Falsch,
Fallfirst: 'Aus',
Stärke: 3,
Numericordering: Falsch,
Alternative: "Nicht ignorierter",
Maxvariable: 'punktieren',
Normalisierung: Falsch,
Rückwärts: Falsch,
Version: '57.1 '


]

In diesem Fall enthält die Sammlung einen Index namens "Year_Index" namens "Year_index". Wir können auch weitere Indexinformationen wie Stärke, Version, Gebietsschema und mehr finden.

Methode 2: Erhalten Sie die Sammelindizes mithilfe der ListIndexes -Methode

Die zweite Methode, mit der wir die Liste der verfügbaren Indizes in einer bestimmten Sammlung anzeigen können, ist die ListIndexes -Methode. Diese Methode ist ein Datenbankbefehl und wird in einem sprachspezifischen Treiber unterstützt.

Die Befehlssyntax ist wie gezeigt:

db.Führen Sie den Befehl aus (

ListIndexes: "",
Cursor: batchsize: ,
Kommentar:

)

Die unterstützten Parameter sind wie gezeigt:

  1. Collection_name - Gibt den Namen der Zielsammlung als String -Typ an.
  2. BatchSize - Gibt die Chargengröße für den Cursor an.
  3. Kommentar - Benutzerkommentar für den angegebenen Befehl.

Betrachten Sie die folgende Beispielabfrage:

db.runcommand (listIndexes: "netflix")

Die vorherige Abfrage ruft den Befehl ListIndexes in der Sammlung „Netflix“ auf. Dies sollte alle Indizes für die spezifische Sammlung zurückgeben, wie in der folgenden Ausgabe gezeigt:


Mauszeiger:
ID: lang ("0"),
NS: 'Unterhaltung.netflix ',
erster Schub: [
v: 2, Schlüssel: _id: 1, Name: '_id_',

v: 2,
Schlüssel: Jahr: 1, Punktzahl: -1,
Name: 'Year_index',
Zusammenfassung:
Gebietsschema: 'en',
Caselevel: Falsch,
Fallfirst: 'Aus',
Stärke: 3,
Numericordering: Falsch,
Alternative: "Nicht ignorierter",
Maxvariable: 'punktieren',
Normalisierung: Falsch,
Rückwärts: Falsch,
Version: '57.1 '


]
,
OK: 1,
'$ clustertime':
Clustertime: Timestamp (t: 1663940670, i: 2),
Unterschrift:
Hash: Binär (Puffer.von ("C243619D64CA61A5C651B4BBB21A8B020A101278", "Hex"), 0),
Schlüssel: lang ("7110175001109594117")

,
OperationTime: Timestamp (t: 1663940670, i: 2)

Da wir die Stapelgröße für den Cursor nicht angeben, gibt der Befehl alle Ergebnisse des Befehls listIndexes zurück.

Um nur ein Ergebnis anzuzeigen, können wir den Parameter BatchSize auf 1 einstellen, wie im Folgenden dargestellt:

db.runcommand (listIndexes: "netflix", cursor: batchsize: 1)

In diesem Fall sollte der Befehl eine Ausgabe wie im Folgenden gezeigt zurückgeben:


Mauszeiger:
ID: Long ("3645642518793960930"),
NS: 'Unterhaltung.netflix ',
FirstBatch: [v: 2, Schlüssel: _id: 1, Name: '_id_']
,
OK: 1,
'$ clustertime':
Clustertime: Timestamp (t: 1663940831, i: 2),
Unterschrift:
Hash: Binär (Puffer.von ("66058e9b4b4d59de21ff01c05480d84438e99411", "Hex"), 0),
Schlüssel: lang ("7110175001109594117")

,
OperationTime: Timestamp (t: 1663940831, i: 2)

Sie können das BatchSize erhöhen, um weitere Informationen über die Indizes in der Sammlung zu erhalten.

Abschluss

In diesem Beitrag haben wir die beiden Hauptmethoden zum Abrufen aller Indizes einer bestimmten Sammlung unter Verwendung der MongoDB Shell -Befehle und der Datenbankbefehle erörtert. Fühlen Sie sich frei, das Dokument für detailliertere Informationen zu erkunden.

Glückliche Codierung!