MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

3 modi per eliminare un indice in MongoDB

MongoDB fornisce diversi modi per eliminare uno o più indici.

Per eliminare un singolo indice, puoi utilizzare dropIndex() metodo.

Per eliminare più indici, puoi utilizzare dropIndexes() metodo o il dropIndexes comando di amministrazione.

Il dropIndex() Metodo

Se devi eliminare solo un indice, puoi utilizzare dropIndex() metodo. Questo metodo accetta il nome dell'indice o il relativo documento delle specifiche.

Ecco un esempio di eliminazione di un indice utilizzando il nome dell'indice:

db.bars.dropIndex("location_2dsphere")

Uscita:

{ "nIndexesWas" : 3, "ok" : 1 }

Questo ci dice che l'indice chiamato location_2dsphere è stato eliminato con successo.

Ecco un esempio di eliminazione di un indice passando il relativo documento delle specifiche:

db.bars.dropIndex( { "name" : 1 } )

Uscita:

{ "nIndexesWas" : 2, "ok" : 1 }

Possiamo vedere che anche questo indice è stato eliminato. Questo indice aveva una specifica di { "name" : 1 } , che è il documento delle specifiche che ho utilizzato durante la creazione dell'indice.

Il dropIndex() è un wrapper attorno a dropIndexes comando.

Il dropIndexes() Metodo

Il dropIndexes() il metodo può essere utile se è necessario eliminare più di un indice. Puoi anche eliminare un singolo indice, ha solo la capacità aggiuntiva di essere in grado di eliminare più (o tutti) gli indici.

Questo metodo accetta il nome dell'indice o il relativo documento di specifica per ciascuno degli indici da eliminare. Se stai eliminando più di un indice, devi fornire i loro nomi/documenti con le specifiche in un array.

Ecco un esempio di eliminazione di due indici utilizzando i loro nomi di indice:

db.pets.dropIndexes( [ "type_1", "name_1" ])

Uscita:

{ "nIndexesWas" : 3, "ok" : 1 }

Nota che, se si tratta di un indice di testo, puoi solo specificare il nome dell'indice.

Puoi eliminare tutti gli indici (tranne per _id index) omettendo del tutto il parametro:

db.pets.dropIndexes()

Il dropIndexes() è un wrapper attorno a dropIndexes comando.

Gli dropIndexes Comando

I dropIndexes comando ti permette di fare la stessa cosa che il dropIndexes() metodo. Come accennato, il dropIndexes() è un wrapper attorno a dropIndexes comando

Ecco un esempio di eliminazione di un singolo indice:

db.runCommand( { dropIndexes: "posts", index: "title_1" })

Uscita:

{ "nIndexesWas" : 4, "ok" : 1 } 

Ed ecco un esempio di eliminazione di più indici:

db.runCommand( { 
  dropIndexes: "posts", 
  index: [ "tags_1", "body_text" ] 
})

Risultato:

{ "nIndexesWas" : 3, "ok" : 1 }

Per eliminare tutti gli indici (tranne per _id index), utilizzare il carattere jolly asterisco (* ):

db.runCommand( { dropIndexes: "posts", index: "*" })

Risultato:

{
	"nIndexesWas" : 4,
	"msg" : "non-_id indexes dropped for collection",
	"ok" : 1
}