MongoDB Få alle indekser på samling

MongoDB Få alle indekser på samling
I denne artikkelen vil vi utforske de to hovedmetodene du kan bruke for å få listen over alle indeksene i en gitt samling. Indekser er veldig viktige datastrukturer som brukes til å forbedre effektiviteten og ytelsen til utførelsesspørsmål i en MongoDB -samling.

Indekser lar MongoDB raskt hente dokumentene som samsvarer med en spesifikk spørring uten å skanne hele samlingen for å matche resultater.

Imidlertid er det godt å huske på at dette innlegget ikke dekker prosessen med indeksoppretting. Sjekk opplæringen vår om emnet for å lære mer.

La oss hoppe inn.

Metode 1: MongoDB getIndexes () Metode

Den første metoden som vi vil diskutere er getIndexes () -metoden. Denne metoden er tilgjengelig i MongoDB -skallet som lar deg få alle indeksene i en gitt samling som en matrise.

Denne metoden returnerer en detaljert informasjon om tilgjengelige indekser, inkludert de skjulte indeksene i et menneskelig lesbart format.

Kommandosyntaks er som vist i følgende:

db.samling.GetIndexes ()

Merk: Avhengig av klyngekonfigurasjonen, kan denne metoden kreve at den løpende brukeren har listeindeksene tillatelser på målsamlingen.

Anta at vi har en samling som heter “Netflix”. Vi kan få alle indeksene i samlingen ved å kjøre følgende spørsmål:

db.Netflix.GetIndexes ()

Forespørselen skal returnere en matrise med informasjonen om tilgjengelige indekser i målsamlingen.

Et eksempelutgang er som vist i følgende:

[
V: 2, Key: _id: 1, navn: '_id_',

V: 2,
Nøkkel: År: 1, poengsum: -1,
Navn: 'Year_index',
Samling:
Lokalisering: 'en',
Caselevel: False,
Casefirst: 'Off',
Styrke: 3,
Numericordering: False,
Alternativ: 'Ikke-ignorable',
MaxVariable: 'Punkter',
Normalisering: falsk,
bakover: falsk,
Versjon: '57.1'


]

I dette tilfellet inneholder samlingen en indeks som heter “Year_index”. Vi kan også finne en annen indeksinformasjon som styrke, versjon, lokalitet og mer.

Metode 2: Få innsamlingsindeksene ved hjelp av ListIndexes -metoden

Den andre metoden som vi kan bruke til å se listen over tilgjengelige indekser i en gitt samling er ListIndexes -metoden. Denne metoden er en databasekommando og støttes i en språkspesifikk driver.

Kommandosyntaks er som vist:

db.RunCommand (

Listeindekser: "",
Markør: BatchSize: ,
kommentar:

)

De støttede parametrene er som vist:

  1. Collection_name - Angir navnet på målsamlingen som en strengtype.
  2. BatchSize - Angir batchstørrelsen for markøren.
  3. Kommentar - Brukerkommentar for den spesifiserte kommandoen.

Tenk på følgende eksempel på spørring:

db.RunCommand (ListIndexes: "Netflix")

Den forrige spørringen påkaller ListIndexes -kommandoen på "Netflix" -samlingen. Dette skal returnere alle indeksene for den spesifikke samlingen som vist i følgende utgang:


Markør:
ID: Lang ("0"),
NS: 'Entertainment.Netflix',
Første sats: [
V: 2, Key: _id: 1, navn: '_id_',

V: 2,
Nøkkel: År: 1, poengsum: -1,
Navn: 'Year_index',
Samling:
Lokalisering: 'en',
Caselevel: False,
Casefirst: 'Off',
Styrke: 3,
Numericordering: False,
Alternativ: 'Ikke-ignorable',
MaxVariable: 'Punkter',
Normalisering: falsk,
bakover: falsk,
Versjon: '57.1'


]
,
OK: 1,
'$ clustertime':
Clustertime: Timestamp (T: 1663940670, i: 2),
signatur:
Hash: binær (buffer.fra ("C243619D64CA61A5C651B4BBB21A8B020A101278", "Hex"), 0),
KeyId: Long ("7110175001109594117")

,
OperationTime: Timestamp (T: 1663940670, I: 2)

Siden vi ikke spesifiserer batchstørrelsen for markøren, returnerer kommandoen alle resultatene fra ListIndexes -kommandoen.

For å bare vise ett resultat, kan vi stille parameteren for batchstørrelse til 1 som vist på følgende:

db.RunCommand (ListIndexes: "Netflix", markør: BatchSize: 1)

I dette tilfellet bør kommandoen returnere en utgang som vist på følgende:


Markør:
ID: Lang ("3645642518793960930"),
NS: 'Entertainment.Netflix',
FirstBatch: [V: 2, Key: _id: 1, navn: '_id_']
,
OK: 1,
'$ clustertime':
Clustertime: Timestamp (T: 1663940831, i: 2),
signatur:
Hash: binær (buffer.fra ("66058e9b4b4d59de21ff01c05480d84438e99411", "Hex"), 0),
KeyId: Long ("7110175001109594117")

,
OperationTime: Timestamp (T: 1663940831, I: 2)

Du kan øke batchstørrelsen for å få mer informasjon om indeksene i samlingen.

Konklusjon

I dette innlegget diskuterte vi de to hovedmetodene for å hente alle indeksene i en gitt samling ved bruk av MongoDB -skallkommandoene og databasekommandoene. Utforske dokumentet for mer detaljert informasjon.

Glad koding!