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:
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!