MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

3 Möglichkeiten, einen Index in MongoDB zu löschen

MongoDB bietet mehrere Möglichkeiten, einen oder mehrere Indizes zu löschen.

Um einen einzelnen Index zu löschen, können Sie dropIndex() verwenden Methode.

Um mehrere Indizes zu löschen, können Sie entweder dropIndexes() verwenden -Methode oder die dropIndexes Verwaltungsbefehl.

Der dropIndex() Methode

Wenn Sie nur einen Index löschen müssen, können Sie dropIndex() verwenden Methode. Diese Methode akzeptiert den Indexnamen oder sein Spezifikationsdokument.

Hier ist ein Beispiel für das Löschen eines Indexes mit dem Indexnamen:

db.bars.dropIndex("location_2dsphere")

Ausgabe:

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

Dies sagt uns, dass der Index namens location_2dsphere wurde erfolgreich gelöscht.

Hier ist ein Beispiel für das Löschen eines Index durch Übergabe seines Spezifikationsdokuments:

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

Ausgabe:

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

Wir können sehen, dass dieser Index ebenfalls gelöscht wurde. Dieser Index hatte eine Spezifikation von { "name" : 1 } , das ist das Spezifikationsdokument, das ich beim Erstellen des Index verwendet habe.

Der dropIndex() Methode ist ein Wrapper um die dropIndexes Befehl.

Die dropIndexes() Methode

Die dropIndexes() Methode kann praktisch sein, wenn Sie mehr als einen Index löschen müssen. Sie können auch einen einzelnen Index löschen, es hat nur die zusätzliche Fähigkeit, mehrere (oder alle) Indizes löschen zu können.

Diese Methode akzeptiert den Indexnamen oder sein Spezifikationsdokument für jeden zu löschenden Index. Wenn Sie mehr als einen Index löschen, müssen Sie deren Namen/Spezifikationsdokumente in einem Array bereitstellen.

Hier ist ein Beispiel für das Löschen zweier Indizes anhand ihrer Indexnamen:

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

Ausgabe:

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

Beachten Sie, dass Sie bei einem Textindex nur den Indexnamen angeben können.

Sie können alle Indizes löschen (außer _id index), indem Sie den Parameter ganz weglassen:

db.pets.dropIndexes()

Die dropIndexes() Methode ist ein Wrapper um die dropIndexes Befehl.

Die dropIndexes Befehl

Die dropIndexes Mit dem Befehl können Sie dasselbe tun wie mit dropIndexes() Methode. Wie bereits erwähnt, die dropIndexes() Methode ist ein Wrapper um die dropIndexes Befehl

Hier ist ein Beispiel für das Löschen eines einzelnen Indexes:

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

Ausgabe:

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

Und hier ist ein Beispiel für das Löschen mehrerer Indizes:

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

Ergebnis:

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

Um alle Indizes zu löschen (außer _id index), verwenden Sie das Sternchen als Platzhalter (* ):

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

Ergebnis:

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