MongoDB wymienia wszystkie indeksy dla bazy danych

MongoDB wymienia wszystkie indeksy dla bazy danych
Możemy użyć metody ListIndexes, aby pobrać wszystkie indeksy w danym kolekcji. Ta metoda jest poleceniem bazy danych i jest obsługiwana w sterowniku specyficznym dla języka.

Składnia polecenia jest jak pokazano następująco:

db.Uruchom polecenie (

ListIndexes: „”,
Cursor: BatchSize: ,
komentarz:

)

Obsługiwane parametry są następujące:

  1. Kolekcja_nazwa - Określa nazwę kolekcji docelowej jako typu ciąg.
  2. partia - określa rozmiar partii dla kursora.
  3. Komentarz - komentarz użytkownika dla określonego polecenia.

Rozważ następujące przykładowe zapytanie:

db.runCommand (ListIndexes: „Hulu”)

Dane zapytanie wywołuje polecenie ListIndexes w kolekcji „Hulu”. Powinno to zwrócić wszystkie indeksy dla konkretnej kolekcji, jak pokazano przy następujących wyjściach:


Cursor:
ID: Long („0”),
NS: „Rozrywka.Hulu ',
pierwsza partia: [
v: 2, klucz: _id: 1, nazwa: '_id_',

V: 2,
Klucz: release_year: 1,
Nazwa: „release_year_index”,
rzadkie: fałszywe

]
,
OK: 1

Ponieważ nie określamy rozmiaru partii dla kursora, polecenie zwraca wszystkie wyniki polecenia ListIndexes.

Aby pokazać tylko jeden wynik, możemy ustawić parametr partii na 1, jak pokazano następująco:

db.runCommand (ListIndexes: „Hulu”, kursor: BatchSize: 1)

W takim przypadku polecenie powinno zwrócić dane wyjściowe, jak pokazano następująco:


Cursor:
ID: Long („6609474838031556340”),
NS: „Rozrywka.Hulu ',
FirstBatch: [v: 2, klucz: _id: 1, nazwa: '_id_']
,
OK: 1

Możesz zwiększyć rozmiar partii, aby uzyskać więcej informacji o indeksach w kolekcji.

MongoDB pokaż wszystkie indeksy w bazie danych

Załóżmy, że chcemy pokazać wszystkie indeksy we wszystkich kolekcjach określonej bazy danych. W tym celu możemy użyć funkcji Foreach, aby iterować każdą kolekcję w bazie danych i wymienić odpowiednie indeksy.

Przykładowe zapytanie jest, jak pokazano następująco:

db.getCollectionNames ().foreach (funkcja (kolekcja) all_indexes = db.GetCollection (kolekcja).ListIndexes (); print („Indeksy„ + kolekcja + ”:->”); printJson (all_indexes); );

Poprzednie zapytanie rozpoczyna się od pobrania wszystkich nazw kolekcji w danej bazie danych za pomocą metody getCollectionNames (). Następnie iterujemy każdą kolekcję w bazie danych i przekazujemy je jako parametry metody getIndexes ().

Na koniec zapisujemy każdy wynik w zmiennej All_Indexes. Aby uzyskać czytelne dane wyjściowe, używamy metod drukowania i drukowania, aby lepiej formatować.

Powinno to zwrócić wszystkie kolekcje i odpowiadające im indeksy, jak pokazano następująco:

[[[
v: 2, klucz: _id: 1, nazwa: '_id_',

V: 2,
Klucz: _fts: „Text”, _ftsx: 1,
Nazwa: „Ocena”,
rzadkie: fałszywe,
Waga: ocena: 1,
Default_Language: „angielski”,
Language_override: „Język”,
TextIndexversion: 3

]
Indeksy Amazon_prime:->
[[[
v: 2, klucz: _id: 1, nazwa: '_id_',

V: 2,
Klucz: _fts: „Text”, _ftsx: 1,
Nazwa: „content_type”,
rzadkie: fałszywe,
Waga: typ: 1,
Default_Language: „angielski”,
Language_override: „Język”,
TextIndexversion: 3

]
Indeksy Hulu:->
[[[
v: 2, klucz: _id: 1, nazwa: '_id_',

V: 2,
Klucz: release_year: 1,
Nazwa: „release_year_index”,
rzadkie: fałszywe

]

W naszym przykładzie mamy trzy kolekcje, każdy z jednym indeksem, jak pokazano w poprzedniej tablicy wyjściowej.

Wniosek

W tym poście omówiliśmy sposób korzystania z metody ListIndexes (), aby uzyskać listę wszystkich indeksów w danym kolekcji. Omówiliśmy również, jak utworzyć prosty skrypt, aby uzyskać wszystkie indeksy i powiązany kolekcja w danej bazie danych.

Szczęśliwe kodowanie!