MongoDB -Auflistung aller Indizes für eine Datenbank

MongoDB -Auflistung aller Indizes für eine Datenbank
Wir können die ListIndexes -Methode verwenden, um alle Indizes in einer bestimmten Sammlung abzurufen. Diese Methode ist ein Datenbankbefehl und wird im sprachspezifischen Treiber unterstützt.

Die Befehlssyntax ist wie im Folgenden dargestellt:

db.Führen Sie den Befehl aus (

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

)

Die unterstützten Parameter sind wie folgt:

  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: "hulu")

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


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

v: 2,
Schlüssel: Release_year: 1,
Name: 'release_year_index' ',
spärlich: Falsch

]
,
OK: 1

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: "Hulu", Cursor: batchsize: 1)

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


Mauszeiger:
ID: Long ("6609474838031556340"),
NS: 'Unterhaltung.Hulu ',
FirstBatch: [v: 2, Schlüssel: _id: 1, Name: '_id_']
,
OK: 1

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

MongoDB zeigen alle Indizes in einer Datenbank an

Angenommen, wir möchten alle Indizes in allen Sammlungen einer bestimmten Datenbank anzeigen. Dafür können wir die Foreach -Funktion verwenden, um jede Sammlung in der Datenbank zu iterieren und ihre entsprechenden Indizes aufzulisten.

Eine Beispielabfrage ist wie im Folgenden dargestellt:

db.getCollectionNames ().foreach (Funktion (Sammlung) All_indexes = db.GetCollection (Sammlung).listIndexes (); print ("Indizes von" + Sammlung + ":->"); printjson (All_indexes); );

Die vorherige Abfrage beginnt damit, alle Sammlungsnamen in einer bestimmten Datenbank mit der Methode GetCollectionNames () abzurufen. Anschließend iterieren wir jede Sammlung in der Datenbank und übergeben sie als Parameter der GetIndexes () -Methode.

Schließlich speichern wir jedes Ergebnis in der Variablen der All_indexes. Um eine menschliche lesbare Ausgabe zu erhalten, verwenden wir die Druck- und Printjson -Methoden, um eine bessere Formatierung zu erhalten.

Dies sollte alle Sammlungen und ihre entsprechenden Indizes zurückgeben, wie im Folgenden gezeigt:

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

v: 2,
Schlüssel: _fts: 'text', _ftsx: 1,
Name: 'Bewertung',
spärlich: Falsch,
Gewichte: Bewertung: 1,
default_klanguage: 'Englisch',
Language_override: 'Sprache',
TextIndexversion: 3

]
Indizes von Amazon_Prime:->
[
v: 2, Schlüssel: _id: 1, Name: '_id_',

v: 2,
Schlüssel: _fts: 'text', _ftsx: 1,
Name: 'content_type',
spärlich: Falsch,
Gewichte: Typ: 1,
default_klanguage: 'Englisch',
Language_override: 'Sprache',
TextIndexversion: 3

]
Indizes von Hulu:->
[
v: 2, Schlüssel: _id: 1, Name: '_id_',

v: 2,
Schlüssel: Release_year: 1,
Name: 'release_year_index' ',
spärlich: Falsch

]

In unserem Beispiel haben wir drei Sammlungen mit jeweils einen Index, wie im vorherigen Ausgabearray gezeigt.

Abschluss

In diesem Beitrag haben wir besprochen, wie die Methode "ListIndexes () verwendet wird, um die Liste aller Indizes in einer bestimmten Sammlung zu erhalten. Wir haben auch diskutiert, wie man ein einfaches Skript erstellt, um alle Indizes und deren zugehörige Sammlung in einer bestimmten Datenbank zu erhalten.

Glückliche Codierung!