I MongoDB kan du skapa ett index på en samling med createIndexes()
metoden, createIndexes()
metoden, eller createIndexes
administrationskommando.
createIndexes()
Metod
db.collection.createIndexes()
metoden skapar ett index på den angivna samlingen. Det är ett omslag för createIndexes
administrationskommando.
Exempel:
db.pets.createIndex( { weight: -1 } )
Detta skapar ett index över husdjurssamlingen. Det är ett fallande index på weight
fält. Vi vet att det är fallande eftersom vi angav -1
. Om vi hade angett 1
det skulle ha varit stigande.
Ett sammansatt index är ett som är definierat på flera fält. Du kan skapa ett sammansatt index genom att separera varje fält med ett kommatecken.
Exempel:
db.pets.createIndex( { name: 1, type: -1 } )
Detta skapar ett sammansatt index på name
fältet (i stigande ordning) och type
fält (i fallande ordning).
createIndexes()
Metod
db.collection.createIndexes()
metod skapar ett eller flera index på en samling. Den här metoden är också ett omslag för createIndexes
administrationskommando.
När du skapar index med createIndexes()
metod måste du tillhandahålla fälten i en array. Du måste göra detta även om du bara skapar ett enda index.
Exempel:
db.pets.createIndexes( [ { weight: -1 } ] )
Det gör samma sak som det första exemplet gör. Det skapar ett fallande index på weight
fältet.
För att skapa flera index, separera varje indexdokument med ett kommatecken.
Exempel:
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
Du kan också skapa sammansatta index med createIndexes()
. För att göra detta, definiera helt enkelt det sammansatta indexet i dokumentet för det indexet.
Därför kan vi göra följande:
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
Det skapar ett sammansatt index för name
och type
fält och ett separat index för weight
fältet.
createIndexes
Kommando
createIndexes
administrationskommandot skapar ett eller flera index på en samling De två föregående metoderna är omslag runt detta kommando.
Därför kan vi använda createIndexes
kommandot för att skapa de index som vi gjorde i de tidigare exemplen.
Här är ett exempel på hur du skapar ett index på name
fält:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
I de tidigare exemplen lät vi MongoDB namnge våra index, men i det här fallet döpte vi indexet till idx_name_1
.
Här är ett exempel på hur du skapar flera index:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
I det här fallet är det första indexet ett sammansatt index på name
och type
fält, och vi döpte det till idx_name_1_type_-1
.
Det andra indexet är på weight
och vi kallade det idx_weight_-1
.
Jokerteckenindex
Alla tre ovanstående metoder stöder jokerteckenindex från MongoDB 4.2 (featureCompatibilityVersion
måste vara minst 4.2
för att skapa jokerteckenindex).
Jokerteckenindex är användbara för samlingar som innehåller ostrukturerad data med olika fält i olika hierarkier.
Se Hur man skapar ett jokerteckenindex i MongoDB för exempel.
MongoDB-dokumentation
Nedan finns länkar till MongoDB-dokumentationen för var och en av ovanstående:
db.collection.createIndexes()
db.collection.createIndexes()
createIndexes