Има няколко начина за пускане на индекс в MongoDB, един от които е да използвате dropIndex() метод.
Доста е лесен за използване - просто предайте името на индекса или документа за неговата дефиниция/спецификация. Ако е текстов индекс, можете да посочите само името на индекса.
Примерни индекси
Да предположим, че имаме колекция, наречена bars . Можем да използваме getIndexes() за да видите какви индекси има:
db.bars.getIndexes() Резултат:
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_"
},
{
"v" : 2,
"key" : {
"location" : "2dsphere"
},
"name" : "location_2dsphere",
"2dsphereIndexVersion" : 3
},
{
"v" : 2,
"key" : {
"name" : 1
},
"name" : "name_1",
"hidden" : true
}
]
Можем да видим, че има три индекса на bars колекция.
- Първият индекс е на
_idполе. MongoDB създава уникален индекс на_idполе по време на създаването на колекция. Не можете да премахнете този индекс. - Вторият индекс е 2dsphere индекс на
locationполе. - Третият индекс е на
nameполе. В този случай се оказва скрит индекс (има"hidden" : trueв спецификацията му).
Пускане на индекс по име
Ето пример за пускане на индекс чрез предаване на името му на dropIndex() метод:
db.bars.dropIndex("location_2dsphere") Изход:
{ "nIndexesWas" : 3, "ok" : 1 } Това ни казва, че индексът е отпаднал успешно.
Изхвърлете индекс по неговата спецификация
Ето пример за пускане на индекс чрез предаване на неговия спецификационен документ към dropIndex() метод:
db.bars.dropIndex( { "name" : 1 } ) Изход:
{ "nIndexesWas" : 2, "ok" : 1 } Виждаме, че този индекс също е отпаднал.
Ще си спомните, че това е индексът, който е бил скрит. Можете да махнете скрити индекси без проблем (не е нужно да ги разкривате, преди да ги пуснете).
Проверете резултатите
Нека изпълним getIndexes() отново, за да видите резултатите:
db.bars.getIndexes() Резултат:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
Този път има само един индекс – _id по подразбиране индекс.
dropIndex() методът е обвивка около dropIndexes команда.
Документация на MongoDB
Вижте документацията на MongoDB за повече информация относно dropIndex() метод.