Има няколко начина за пускане на индекс в 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()
метод.