В MongoDB можете да създадете индекс на колекция с помощта на createIndex()
метод, createIndexes()
метод или createIndexes
административна команда.
createIndex()
Метод
db.collection.createIndex()
метод създава индекс на посочената колекция. Това е обвивка за createIndexes
административна команда.
Пример:
db.pets.createIndex( { weight: -1 } )
Това създава индекс на колекцията от домашни любимци. Това е низходящ индекс на weight
поле. Знаем, че е низходящо, защото посочихме -1
. Ако сме посочили 1
щеше да е възходящо.
Съставният индекс е този, който е дефиниран в множество полета. Можете да създадете комбиниран индекс, като разделите всяко поле със запетая.
Пример:
db.pets.createIndex( { name: 1, type: -1 } )
Това създава комбиниран индекс на name
поле (във възходящ ред) и type
поле (в низходящ ред).
createIndexes()
Метод
db.collection.createIndexes()
метод създава един или повече индекси в колекция Този метод също е обвивка за createIndexes
административна команда.
Когато създавате индекси с createIndexes()
метод, трябва да предоставите полетата в масив. Трябва да направите това, дори ако създавате само един индекс.
Пример:
db.pets.createIndexes( [ { weight: -1 } ] )
Това прави същото, което прави първият пример. Той създава низходящ индекс на weight
поле.
За да създадете множество индекси, отделете документа на всеки индекс със запетая.
Пример:
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
Можете също да създавате съставни индекси с createIndexes()
. За да направите това, просто дефинирайте съставния индекс в документа за този индекс.
Следователно бихме могли да направим следното:
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
Това създава комбиниран индекс за name
и type
полета и отделен индекс за weight
поле.
createIndexes
Команда
createIndexes
командата Administration създава един или повече индекси в колекция. Предишните два метода са обвивки около тази команда.
Следователно можем да използваме createIndexes
команда за създаване на индексите, които направихме в предишните примери.
Ето пример за създаване на индекс на name
поле:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
В предишните примери оставихме MongoDB да наименува нашите индекси, но в този случай наименувахме индекса idx_name_1
.
Ето пример за създаване на множество индекси:
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
В този случай първият индекс е съставен индекс на name
и type
полета и го нарекохме idx_name_1_type_-1
.
Вторият индекс е на weight
поле и го нарекохме idx_weight_-1
.
Индекси с заместващи знаци
И трите от горните подхода поддържат заместващи индекси от MongoDB 4.2 (featureCompatibilityVersion
трябва да е най-малко 4.2
за създаване на заместващи индекси).
Индексите за заместващи символи са полезни за колекции, които съдържат неструктурирани данни с различни полета в различни йерархии.
Вижте как да създадете индекс за заместващи символи в MongoDB за примери.
Документация на MongoDB
По-долу са връзки към документацията на MongoDB за всяко от горните:
db.collection.createIndex()
db.collection.createIndexes()
createIndexes