MongoDB tillhandahåller flera sätt att släppa ett eller flera index.
För att ta bort ett enstaka index kan du använda dropIndexes()
metod.
För att ta bort flera index kan du använda antingen dropIndexes()
metoden eller dropIndexes
administrationskommando.
dropIndexes()
Metod
Om du bara behöver ta bort ett index kan du använda dropIndexes()
metod. Denna metod accepterar indexnamnet eller dess specifikationsdokument.
Här är ett exempel på hur du släpper ett index med indexnamnet:
db.bars.dropIndex("location_2dsphere")
Utdata:
{ "nIndexesWas" : 3, "ok" : 1 }
Detta talar om för oss att indexet kallas location_2dsphere
togs bort.
Här är ett exempel på hur du släpper ett index genom att skicka dess specifikationsdokument:
db.bars.dropIndex( { "name" : 1 } )
Utdata:
{ "nIndexesWas" : 2, "ok" : 1 }
Vi kan se att även detta index har sjunkit. Detta index hade en specifikation av { "name" : 1 }
, vilket är det specifikationsdokument jag använde när jag skapade indexet.
dropIndexes()
Metoden är ett omslag runt dropIndexes
kommando.
dropIndexes()
Metod
dropIndexes()
metoden kan vara praktisk om du behöver ta bort mer än ett index. Du kan släppa ett enda index också, det har bara den extra förmågan att kunna släppa flera (eller alla) index.
Den här metoden accepterar indexnamnet eller dess specifikationsdokument för vart och ett av indexen att släppa. Om du släpper mer än ett index måste du ange deras namn/specifikationsdokument i en array.
Här är ett exempel på hur du släpper två index med deras indexnamn:
db.pets.dropIndexes( [ "type_1", "name_1" ])
Utdata:
{ "nIndexesWas" : 3, "ok" : 1 }
Observera att om det är ett textindex kan du bara ange indexnamnet.
Du kan ta bort alla index (förutom _id
). index) genom att utelämna parametern helt och hållet:
db.pets.dropIndexes()
dropIndexes()
Metoden är ett omslag runt dropIndexes
kommando.
dropIndexes
Kommando
dropIndexes
kommandot låter dig göra samma sak som dropIndexes()
metod. Som nämnts, dropIndexes()
Metoden är ett omslag runt dropIndexes
kommando
Här är ett exempel på att ta bort ett enda index:
db.runCommand( { dropIndexes: "posts", index: "title_1" })
Utdata:
{ "nIndexesWas" : 4, "ok" : 1 }
Och här är ett exempel på att ta bort flera index:
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
})
Resultat:
{ "nIndexesWas" : 3, "ok" : 1 }
För att ta bort alla index (förutom _id
index), använd asterisken jokertecken (*
):
db.runCommand( { dropIndexes: "posts", index: "*" })
Resultat:
{ "nIndexesWas" : 4, "msg" : "non-_id indexes dropped for collection", "ok" : 1 }