MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

DropIndexes MongoDB()

Di MongoDB, dropIndexes() metode ini memungkinkan Anda untuk menghapus satu atau lebih indeks dari koleksi.

Untuk menjatuhkan satu indeks, berikan nama indeks atau dokumen definisi/spesifikasinya. Jika ini adalah indeks teks, Anda hanya dapat menentukan nama indeks.

Untuk menjatuhkan beberapa indeks, berikan nama indeks dalam sebuah array.

Untuk menghapus semua indeks (kecuali _id index), jangan berikan argumen apa pun.

Contoh Indeks

Misalkan kita memiliki koleksi yang disebut pets . Kita bisa menggunakan getIndexes() untuk melihat indeks apa yang dimilikinya:

db.pets.getIndexes()

Hasil:

[
	{
		"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"
	}
]

Dalam hal ini kami memiliki empat indeks. Yang pertama adalah indeks default untuk _id bidang. Indeks ini dibuat secara otomatis saat Anda membuat koleksi, dan tidak dapat dihapus.

Tiga indeks lainnya bisa dijatuhkan.

Lepaskan Satu Indeks

Untuk menghapus satu indeks, berikan nama indeks atau dokumen spesifikasinya.

Contoh:

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

Dalam hal ini, kami memberikan nama indeks.

Menjalankan yang menghasilkan output berikut:

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

Ini memberitahu kita bahwa indeks dijatuhkan.

Alternatifnya, kita dapat menghapus indeks dengan mengirimkan dokumen spesifikasinya:

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

Lepaskan Beberapa Indeks

Jika Anda ingin menghapus beberapa indeks, tetapi tidak semua indeks, berikan nama indeks dalam sebuah larik.

Contoh:

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

Hasil:

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

Pada tahap ini, mari kita periksa kembali daftar indeks kita:

db.pets.getIndexes()

Hasil:

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

Seperti yang diharapkan, tiga indeks telah dihapus dan hanya ada satu yang tersisa (dan tidak dapat dihapus).

Lepaskan Semua Indeks

Anda dapat menghapus semua indeks dengan memanggil dropIndexes() metode tanpa argumen.

Untuk contoh ini, mari letakkan indeks pada koleksi yang disebut products . Koleksi ini memiliki empat indeks sebagai berikut:

db.products.getIndexes()

Hasil:

[
	{
		"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"
	}
]

Sekarang mari kita lepaskan semua indeks:

db.products.dropIndexes()

Hasil:

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

Seperti pesan yang disinggung, semua indeks dihapus kecuali _id indeks. Indeks ini tidak dapat dihapus.

Mari kita periksa indeks lagi.

db.products.getIndexes()

Hasil:

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

Seperti yang diharapkan, _id indeks adalah satu-satunya yang tersisa.

dropIndexes() metode ini membungkus dropIndexes perintah.

Dokumentasi MongoDB

Lihat dokumentasi MongoDB untuk informasi lebih lanjut tentang dropIndexes() metode.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Panjang nilai bidang string di mongoDB

  2. Pencadangan MongoDB Otomatis

  3. Batas kedalaman bidang Objek bersarang MongoDB

  4. Apakah ada cara untuk memperbarui dua koleksi secara atom di MongoDB?

  5. Luwak:Perbandingan ObjectId gagal secara tidak konsisten