MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

3 façons de supprimer un index dans MongoDB

MongoDB propose plusieurs façons de supprimer un index ou des index.

Pour supprimer un seul index, vous pouvez utiliser le dropIndex() méthode.

Pour supprimer plusieurs index, vous pouvez utiliser soit le dropIndexes() ou la méthode dropIndexes commande administrative.

Le dropIndex() Méthode

Si vous n'avez besoin de supprimer qu'un seul index, vous pouvez utiliser le dropIndex() méthode. Cette méthode accepte le nom de l'index ou son document de spécification.

Voici un exemple de suppression d'un index en utilisant le nom de l'index :

db.bars.dropIndex("location_2dsphere")

Sortie :

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

Cela nous indique que l'index appelé location_2dsphere a été supprimée avec succès.

Voici un exemple de suppression d'un index en transmettant son document de spécification :

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

Sortie :

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

Nous pouvons voir que cet indice a également été supprimé. Cet index avait une spécification de { "name" : 1 } , qui est le document de spécification que j'ai utilisé lors de la création de l'index.

Le dropIndex() la méthode est un wrapper autour des dropIndexes commande.

Les dropIndexes() Méthode

Le dropIndexes() La méthode peut être pratique si vous devez supprimer plusieurs index. Vous pouvez également supprimer un seul index, il a simplement la capacité supplémentaire de pouvoir supprimer plusieurs (ou tous) index.

Cette méthode accepte le nom de l'index ou son document de spécification pour chacun des index à supprimer. Si vous supprimez plusieurs index, vous devez fournir leurs noms/documents de spécification dans un tableau.

Voici un exemple de suppression de deux index en utilisant leurs noms d'index :

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

Sortie :

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

Notez que, s'il s'agit d'un index de texte, vous ne pouvez spécifier que le nom de l'index.

Vous pouvez supprimer tous les index (sauf pour le _id index) en omettant complètement le paramètre :

db.pets.dropIndexes()

Le dropIndexes() la méthode est un wrapper autour des dropIndexes commande.

Les dropIndexes Commande

Les dropIndexes La commande vous permet de faire la même chose que le dropIndexes() méthode. Comme mentionné, le dropIndexes() la méthode est un wrapper autour des dropIndexes commande

Voici un exemple de suppression d'un seul index :

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

Sortie :

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

Et voici un exemple de suppression de plusieurs index :

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

Résultat :

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

Pour supprimer tous les index (sauf pour le _id index), utilisez le caractère générique astérisque (* ):

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

Résultat :

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