sql >> Databasteknik >  >> NoSQL >> MongoDB

3 sätt att släppa ett index i MongoDB

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
}

  1. CouchDB vs. MongoDB:10 saker du bör veta

  2. Mongo - Ignorera egendom från att bevaras

  3. Är det möjligt att ha en Linux VFS-cache med ett FUSE-filsystem?

  4. Mongoose - orsakad av ::11000 E11000 duplicate key error index?