MongoDB biedt verschillende manieren om een index of indexen te verwijderen.
Om een enkele index te verwijderen, kunt u de dropIndex()
. gebruiken methode.
Om meerdere indexen te verwijderen, kunt u de dropIndexes()
. gebruiken methode of de dropIndexes
administratie commando.
De dropIndex()
Methode
Als u slechts één index hoeft te verwijderen, kunt u de dropIndex()
. gebruiken methode. Deze methode accepteert de indexnaam of het specificatiedocument.
Hier is een voorbeeld van het verwijderen van een index met de indexnaam:
db.bars.dropIndex("location_2dsphere")
Uitgang:
{ "nIndexesWas" : 3, "ok" : 1 }
Dit vertelt ons dat de index genaamd location_2dsphere
is succesvol verwijderd.
Hier is een voorbeeld van het verwijderen van een index door het specificatiedocument door te geven:
db.bars.dropIndex( { "name" : 1 } )
Uitgang:
{ "nIndexesWas" : 2, "ok" : 1 }
We kunnen zien dat deze index ook is gedaald. Deze index had een specificatie van { "name" : 1 }
, het specificatiedocument dat ik heb gebruikt bij het maken van de index.
De dropIndex()
methode is een wrapper rond de dropIndexes
commando.
De dropIndexes()
Methode
De dropIndexes()
methode kan handig zijn als u meer dan één index moet verwijderen. Je kunt ook een enkele index laten vallen, het heeft alleen de extra mogelijkheid om meerdere (of alle) indexen te kunnen laten vallen.
Deze methode accepteert de indexnaam of het specificatiedocument voor elk van de indexen die moeten worden verwijderd. Als u meer dan één index laat vallen, moet u hun namen/specificatiedocumenten in een array opgeven.
Hier is een voorbeeld van het verwijderen van twee indexen met hun indexnamen:
db.pets.dropIndexes( [ "type_1", "name_1" ])
Uitgang:
{ "nIndexesWas" : 3, "ok" : 1 }
Merk op dat, als het een tekstindex is, u alleen de indexnaam kunt specificeren.
U kunt alle indexen verwijderen (behalve de _id
index) door de parameter helemaal weg te laten:
db.pets.dropIndexes()
De dropIndexes()
methode is een wrapper rond de dropIndexes
commando.
De dropIndexes
Commando
De dropIndexes
commando kunt u hetzelfde doen als de dropIndexes()
methode. Zoals gezegd, de dropIndexes()
methode is een wrapper rond de dropIndexes
commando
Hier is een voorbeeld van het verwijderen van een enkele index:
db.runCommand( { dropIndexes: "posts", index: "title_1" })
Uitgang:
{ "nIndexesWas" : 4, "ok" : 1 }
En hier is een voorbeeld van het verwijderen van meerdere indexen:
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
})
Resultaat:
{ "nIndexesWas" : 3, "ok" : 1 }
Om alle indexen te verwijderen (behalve de _id
index), gebruik het asterisk-jokerteken (*
):
db.runCommand( { dropIndexes: "posts", index: "*" })
Resultaat:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }