In questo post, esploreremo come utilizzare il metodo dropindexes () nella shell Mongodb per rimuovere un indice da una determinata raccolta. Costruiremo anche un semplice script per rimuovere tutti gli indici da una determinata raccolta.
Immerciamoci.
MongoDB DB.Collezione.Dropindexes ()
Per eliminare un indice specifico da una raccolta, utilizziamo il metodo DropIndexes () e passiamo l'indice di destinazione che si desidera rimuovere dalla raccolta.
È possibile specificare il nome dell'indice se si tratta di un indice di testo o del documento delle specifiche dell'indice altrimenti.
Esempio 1: rilascia un indice per nome
Nella seguente query di esempio, possiamo utilizzare il metodo DropIndexes () per rilasciare un indice con il nome, "Digita".
ent> db.Netflix.DropIndexes ("tipo")
Il comando dato rimuove l'indice con il nome, "digitare". La caduta di un indice per nome è supportata per i tipi di indice di testo.
La query restituisce un output come segue:
Nindexes è stato: 4, OK: 1
Esempio 2: rilasciare più indici per nome
Possiamo anche rimuovere più indici usando i loro nomi come mostrato nella seguente query di esempio:
db.Netflix.dropindexes ("anno", "valutazione")
In questo caso, il comando dovrebbe rimuovere gli indici "anno" e "valutazione" dalla raccolta.
Produzione:
Nindexes è stato: 3, OK: 1
Esempio 3: rilascia tutti gli indici tranne l'indice _id
La seguente query di esempio mostra come utilizzare il metodo DropIndexes () per rilasciare tutti gli indici da una determinata raccolta tranne l'indice _id.
db.Netflix.dropindexes ()
Il comando deve rimuovere tutti gli indici non _id dalla raccolta come mostrato nella seguente uscita:
Nindexes era: 4,
MSG: "indici non_id rilasciati per la raccolta",
OK: 1
Esempio 4: rilascia tutti gli indici da un determinato database
Se desideriamo rimuovere tutti gli indici da un determinato database, possiamo usare uno script semplice come mostrato nell'esempio seguente:
db.getCollectionNames ().foreach (function (collectionname)
... db.runCommand (DropIndexes: CollectionName, indice: "*");
...);
Il comando precedente utilizza la funzione foreach per iterare su ciascuna raccolta nel database. Quindi passa ogni raccolta al comando dropindexes e all'indice di destinazione come carattere jolly.
Ciò dovrebbe consentire di rimuovere tutti gli indici non _id dal database in un semplice passaggio.
Conclusione
In questo post, abbiamo discusso di come utilizzare il metodo DropinDexes nella shell MongoDB per rimuovere uno o più indici da una raccolta.