MongoDB giver flere måder at droppe et eller flere indekser på.
For at slette et enkelt indeks kan du bruge dropIndexes()
metode.
For at slette flere indekser kan du bruge enten dropIndexes()
metoden eller dropIndexes
administrationskommando.
dropIndexes()
Metode
Hvis du kun skal slette ét indeks, kan du bruge dropIndexes()
metode. Denne metode accepterer indeksnavnet eller dets specifikationsdokument.
Her er et eksempel på at slette et indeks ved hjælp af indeksnavnet:
db.bars.dropIndex("location_2dsphere")
Output:
{ "nIndexesWas" : 3, "ok" : 1 }
Dette fortæller os, at indekset kaldet location_2dsphere
blev slettet.
Her er et eksempel på at slette et indeks ved at sende dets specifikationsdokument:
db.bars.dropIndex( { "name" : 1 } )
Output:
{ "nIndexesWas" : 2, "ok" : 1 }
Vi kan se, at dette indeks også blev droppet. Dette indeks havde en specifikation på { "name" : 1 }
, som er det specifikationsdokument, jeg brugte, da jeg oprettede indekset.
dropIndexes()
metoden er en indpakning omkring dropIndexes
kommando.
dropIndexes()
Metode
dropIndexes()
metode kan være praktisk, hvis du skal droppe mere end ét indeks. Du kan også droppe et enkelt indeks, det har bare den tilføjede evne til at kunne droppe flere (eller alle) indekser.
Denne metode accepterer indeksnavnet eller dets specifikationsdokument for hvert af indekserne, der skal droppes. Hvis du dropper mere end ét indeks, skal du angive deres navne/specifikationsdokumenter i et array.
Her er et eksempel på at slette to indekser ved hjælp af deres indeksnavne:
db.pets.dropIndexes( [ "type_1", "name_1" ])
Output:
{ "nIndexesWas" : 3, "ok" : 1 }
Bemærk, at hvis det er et tekstindeks, kan du kun angive indeksnavnet.
Du kan slette alle indekser (undtagen _id
). index) ved at udelade parameteren helt:
db.pets.dropIndexes()
dropIndexes()
metoden er en indpakning omkring dropIndexes
kommando.
dropIndexes
Kommando
dropIndexes
kommandoen tillader dig at gøre det samme som dropIndexes()
metode. Som nævnt er dropIndexes()
metoden er en indpakning omkring dropIndexes
kommando
Her er et eksempel på at droppe et enkelt indeks:
db.runCommand( { dropIndexes: "posts", index: "title_1" })
Output:
{ "nIndexesWas" : 4, "ok" : 1 }
Og her er et eksempel på at droppe flere indekser:
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
})
Resultat:
{ "nIndexesWas" : 3, "ok" : 1 }
For at slette alle indekser (undtagen _id
). indeks), brug jokertegnet for stjerne (*
):
db.runCommand( { dropIndexes: "posts", index: "*" })
Resultat:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }