MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB dropIndexes()

W MongoDB funkcja dropIndexes() metoda pozwala usunąć jeden lub więcej indeksów z kolekcji.

Aby usunąć pojedynczy indeks, podaj nazwę indeksu lub jego definicji/dokumentu specyfikacji. Jeśli jest to indeks tekstowy, możesz określić tylko nazwę indeksu.

Aby usunąć wiele indeksów, przekaż nazwy indeksów w tablicy.

Aby usunąć wszystkie indeksy (z wyjątkiem _id indeks), nie przekazuj żadnych argumentów.

Przykładowe indeksy

Załóżmy, że mamy kolekcję o nazwie pets . Możemy użyć getIndexes() aby zobaczyć, jakie ma indeksy:

db.pets.getIndexes()

Wynik:

[
	{
		"v" : 2,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_"
	},
	{
		"v" : 2,
		"key" : {
			"type" : 1
		},
		"name" : "type_1"
	},
	{
		"v" : 2,
		"key" : {
			"name" : 1
		},
		"name" : "name_1",
		"hidden" : true
	},
	{
		"v" : 2,
		"key" : {
			"weight" : -1
		},
		"name" : "weight_-1"
	}
]

W tym przypadku mamy cztery indeksy. Pierwszy to domyślny indeks dla _id pole. Ten indeks jest tworzony automatycznie podczas tworzenia kolekcji i nie można go usunąć.

Pozostałe trzy indeksy mogą zostać upuszczony.

Upuść pojedynczy indeks

Aby usunąć pojedynczy indeks, przekaż nazwę indeksu lub jego dokument specyfikacji.

Przykład:

db.pets.dropIndexes("weight_-1")

W tym przypadku przekazujemy nazwę indeksu.

Uruchomienie tego skutkuje następującymi danymi wyjściowymi:

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

To mówi nam, że indeks został usunięty.

Alternatywnie moglibyśmy usunąć indeks, przekazując jego dokument specyfikacji:

db.pets.dropIndexes( { "weight" : -1 } )

Upuść wiele indeksów

Jeśli chcesz usunąć wiele indeksów, ale nie wszystkie, przekaż nazwy indeksów w tablicy.

Przykład:

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

Wynik:

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

Na tym etapie sprawdźmy ponownie naszą listę indeksów:

db.pets.getIndexes()

Wynik:

[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]

Zgodnie z oczekiwaniami, trzy indeksy zostały usunięte, a pozostał tylko jeden (i nie można go usunąć).

Upuść wszystkie indeksy

Możesz usunąć wszystkie indeksy, wywołując dropIndexes() metoda bez żadnych argumentów.

W tym przykładzie upuśćmy indeksy na kolekcję o nazwie products . Ta kolekcja ma cztery następujące indeksy:

db.products.getIndexes()

Wynik:

[
	{
		"v" : 2,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_"
	},
	{
		"v" : 2,
		"key" : {
			"product.$**" : 1
		},
		"name" : "product.$**_1"
	},
	{
		"v" : 2,
		"key" : {
			"sizes" : 1
		},
		"name" : "sizes_1"
	},
	{
		"v" : 2,
		"key" : {
			"stock" : -1
		},
		"name" : "stock_-1"
	}
]

Teraz odrzućmy wszystkie indeksy:

db.products.dropIndexes()

Wynik:

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

Jak wspomniano w wiadomości, wszystkie indeksy zostały usunięte z wyjątkiem _id indeks. Ten indeks nie może zostać usunięty.

Sprawdźmy jeszcze raz indeksy.

db.products.getIndexes()

Wynik:

[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]

Zgodnie z oczekiwaniami _id pozostał tylko indeks.

dropIndexes() metoda jest opakowaniem wokół dropIndexes polecenie.

Dokumentacja MongoDB

Więcej informacji na temat dropIndexes() można znaleźć w dokumentacji MongoDB metoda.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Deserializacja identyfikatora obiektu Mongo DB przy użyciu serializatora JSON

  2. Wyszukiwanie tekstowe mongodb przy użyciu wielu języków

  3. Zmień nazwę pola w kolekcji MongoDB

  4. Dokumentacja ClusterControl 1.5 — co nowego

  5. Używanie findOne w pętli trwa zbyt długo w Node.js