В 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