Indeksy pozwalają MongoDB szybko pobierać dokumenty pasujące do określonego zapytania bez skanowania całej kolekcji w celu dopasowania wyników.
Warto jednak pamiętać, że ten post nie obejmuje procesu tworzenia indeksu. Sprawdź nasz samouczek na ten temat, aby dowiedzieć się więcej.
Wskakujmy.
Metoda 1: MongoDB GetIndexes ()
Pierwszą metodą, którą omówimy, jest metoda getIndexes (). Ta metoda jest dostępna w MongoDB Shell, która pozwala uzyskać wszystkie indeksy w danej kolekcji jako tablicę.
Ta metoda zwraca szczegółowe informacje o dostępnych indeksach, w tym ukryte indeksy w formacie czytelnym człowieka.
Składnia polecenia jest jak pokazano następująco:
db.kolekcja.getIndexes ()
Uwaga: W zależności od konfiguracji klastra metoda może wymagać od uruchomionego użytkownika, aby uprawnienia indeksów listy w kolekcji docelowej.
Załóżmy, że mamy kolekcję o nazwie „Netflix”. Możemy uzyskać wszystkie indeksy w kolekcji, uruchamiając następujące zapytanie:
db.Netflix.getIndexes ()
Żądanie powinno zwrócić tablicę z informacjami o dostępnych indeksach w zbiorze docelowym.
Przykładowe dane wyjściowe jest jak pokazano następująco:
[[[
v: 2, klucz: _id: 1, nazwa: '_id_',
V: 2,
Klucz: rok: 1, wynik: -1,
Nazwa: „rok_index”,
KOLACJA:
lokalizacja: „en”,
Caselevel: Fałsz,
caseFirst: „off”,
Siła: 3,
Numericordering: False,
Alternate: „Niegnorowane”,
MaxVariable: „Puck”,
Normalizacja: Fałsz,
wstecz: Fałsz,
Wersja: '57.1 '
]
W tym przypadku kolekcja zawiera jeden indeks o nazwie „rok_index”. Możemy również znaleźć kolejne informacje o indeksie, takie jak siła, wersja, lokalizacja i inne.
Metoda 2: Pobierz indeksy kolekcji za pomocą metody ListIndexes
Drugą metodą, której możemy użyć do wyświetlenia listy dostępnych indeksów w danym kolekcji, jest metoda ListIndexes. Ta metoda jest poleceniem bazy danych i jest obsługiwana w sterowniku specyficznym dla języka.
Składnia poleceń jest jak pokazano:
db.Uruchom polecenie (
ListIndexes: „”,
Cursor: BatchSize:,
komentarz:
)
Obsługiwane parametry są jak pokazano:
Rozważ następujące przykładowe zapytanie:
db.runCommand (ListIndexes: „Netflix”)
Poprzednie zapytanie wywołuje polecenie ListIndexes w kolekcji „Netflix”. Powinno to zwrócić wszystkie indeksy dla konkretnej kolekcji, jak pokazano przy następujących wyjściach:
Cursor:
ID: Long („0”),
NS: „Rozrywka.Netflix ',
pierwsza partia: [
v: 2, klucz: _id: 1, nazwa: '_id_',
V: 2,
Klucz: rok: 1, wynik: -1,
Nazwa: „rok_index”,
KOLACJA:
lokalizacja: „en”,
Caselevel: Fałsz,
caseFirst: „off”,
Siła: 3,
Numericordering: False,
Alternate: „Niegnorowane”,
MaxVariable: „Puck”,
Normalizacja: Fałsz,
wstecz: Fałsz,
Wersja: '57.1 '
]
,
OK: 1,
„$ clustertime”:
Clustertime: Timestamp (T: 1663940670, i: 2),
podpis:
Hash: binarny (bufor.z („C243619D64CA61A5C651B4BBB21A8B020A101278”, „HEX”), 0), 0),
KeyID: Long („7110175001109594117”)
,
Operacja: Znacznik czasu (T: 1663940670, i: 2)
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: „Netflix”, kursor: BatchSize: 1)
W takim przypadku polecenie powinno zwrócić dane wyjściowe, jak pokazano następująco:
Cursor:
ID: Long („3645642518793960930”),
NS: „Rozrywka.Netflix ',
FirstBatch: [v: 2, klucz: _id: 1, nazwa: '_id_']
,
OK: 1,
„$ clustertime”:
Clustertime: Timestamp (T: 1663940831, i: 2),
podpis:
Hash: binarny (bufor.z („66058e9b4b4d59de21ff01c05480d84438e99411”, „hex”), 0), 0),
KeyID: Long („7110175001109594117”)
,
Operacja: Znacznik czasu (T: 1663940831, i: 2)
Możesz zwiększyć rozmiar partii, aby uzyskać więcej informacji o indeksach w kolekcji.
Wniosek
W tym poście omówiliśmy dwie główne metody pobierania wszystkich indeksów danej kolekcji za pomocą poleceń MongoDB Shell i poleceń bazy danych. Zapraszam do zbadania dokumentu w celu uzyskania bardziej szczegółowych informacji.
Szczęśliwe kodowanie!