I MongoDB kan du oprette et indeks på en samling ved hjælp af createIndexes()
metoden createIndexes()
metoden eller createIndexes
administrationskommando.
createIndexes()
Metode
db.collection.createIndexes()
metoden opretter et indeks på den angivne samling. Det er en indpakning for createIndexes
administrationskommando.
Eksempel:
db.pets.createIndex( { weight: -1 } )
Dette opretter et indeks over kæledyrssamlingen. Det er et faldende indeks på weight
Mark. Vi ved, at den er faldende, fordi vi har specificeret -1
. Hvis vi havde angivet 1
det ville have været stigende.
Et sammensat indeks er et, der er defineret på flere felter. Du kan oprette et sammensat indeks ved at adskille hvert felt med et komma.
Eksempel:
db.pets.createIndex( { name: 1, type: -1 } )
Dette opretter et sammensat indeks på name
feltet (i stigende rækkefølge) og type
felt (i faldende rækkefølge).
createIndexes()
Metode
db.collection.createIndexes()
metoden opretter et eller flere indekser på en samling. Denne metode er også en indpakning for createIndexes
administrationskommando.
Når du opretter indekser med createIndexes()
metode, skal du angive felterne i et array. Du skal gøre dette, selvom du kun opretter et enkelt indeks.
Eksempel:
db.pets.createIndexes( [ { weight: -1 } ] )
Det gør det samme, som det første eksempel gør. Det opretter et faldende indeks på weight
felt.
For at oprette flere indekser skal du adskille hvert indekss dokument med et komma.
Eksempel:
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
Du kan også oprette sammensatte indekser med createIndexes()
. For at gøre dette skal du blot definere det sammensatte indeks i dokumentet for det indeks.
Derfor kunne vi gøre følgende:
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
Det opretter et sammensat indeks for name
og type
felter og et separat indeks for weight
felt.
createIndexes
Kommando
createIndexes
administrationskommando opretter et eller flere indekser på en samling. De to foregående metoder er indpakninger omkring denne kommando.
Derfor kan vi bruge createIndexes
kommando for at oprette de indekser, som vi lavede i de foregående eksempler.
Her er et eksempel på oprettelse af et indeks på name
felt:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
I de foregående eksempler lod vi MongoDB navngive vores indekser, men i dette tilfælde navngav vi indekset idx_name_1
.
Her er et eksempel på oprettelse af flere indekser:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
I dette tilfælde er det første indeks et sammensat indeks på name
og type
felter, og vi kaldte det idx_name_1_type_-1
.
Det andet indeks er på weight
felt, og vi kaldte det idx_weight_-1
.
Jokertegnindekser
Alle tre af ovenstående tilgange understøtter jokertegnindekser fra MongoDB 4.2 (featureCompatibilityVersion
skal være mindst 4.2
for at oprette jokertegnindekser).
Wildcard-indekser er nyttige til samlinger, der indeholder ustrukturerede data med forskellige felter i forskellige hierarkier.
Se hvordan man opretter et wildcard-indeks i MongoDB for eksempler.
MongoDB-dokumentation
Nedenfor er links til MongoDB-dokumentationen for hver af ovenstående:
db.collection.createIndexes()
db.collection.createIndexes()
createIndexes