MongoDB предоставя няколко начина за пускане на индекс или индекси.
За да премахнете единичен индекс, можете да използвате dropIndex()
метод.
За да премахнете множество индекси, можете да използвате или dropIndexes()
метод или dropIndexes
административна команда.
dropIndex()
Метод
Ако трябва да пуснете само един индекс, можете да използвате dropIndex()
метод. Този метод приема името на индекса или неговия спецификационен документ.
Ето пример за пускане на индекс с помощта на името на индекса:
db.bars.dropIndex("location_2dsphere")
Изход:
{ "nIndexesWas" : 3, "ok" : 1 }
Това ни казва, че индексът, наречен location_2dsphere
беше премахнат успешно.
Ето пример за отпадане на индекс чрез предаване на неговия документ за спецификация:
db.bars.dropIndex( { "name" : 1 } )
Изход:
{ "nIndexesWas" : 2, "ok" : 1 }
Виждаме, че този индекс също отпадна. Този индекс имаше спецификация на { "name" : 1 }
, което е документът със спецификация, който използвах при създаването на индекса.
dropIndex()
методът е обвивка около dropIndexes
команда.
dropIndexes()
Метод
dropIndexes()
методът може да бъде удобен, ако трябва да пуснете повече от един индекс. Можете също да пуснете един индекс, той просто има добавената възможност да може да изтрие множество (или всички) индекси.
Този метод приема името на индекса или неговия документ за спецификация за всеки от индексите, които трябва да бъдат отхвърлени. Ако пускате повече от един индекс, трябва да предоставите техните имена/документи за спецификация в масив.
Ето пример за премахване на два индекса, използвайки имената им:
db.pets.dropIndexes( [ "type_1", "name_1" ])
Изход:
{ "nIndexesWas" : 3, "ok" : 1 }
Имайте предвид, че ако е текстов индекс, можете да посочите само името на индекса.
Можете да премахнете всички индекси (с изключение на _id
индекс), като пропуснете параметъра напълно:
db.pets.dropIndexes()
dropIndexes()
методът е обвивка около dropIndexes
команда.
dropIndexes
Команда
dropIndexes
командата ви позволява да направите същото, което dropIndexes()
метод. Както споменахме, dropIndexes()
методът е обвивка около dropIndexes
команда
Ето пример за отпадане на един индекс:
db.runCommand( { dropIndexes: "posts", index: "title_1" })
Изход:
{ "nIndexesWas" : 4, "ok" : 1 }
И ето пример за отпадане на множество индекси:
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
})
Резултат:
{ "nIndexesWas" : 3, "ok" : 1 }
За да премахнете всички индекси (с изключение на _id
индекс), използвайте заместващия знак звездичка (*
):
db.runCommand( { dropIndexes: "posts", index: "*" })
Резултат:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }