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

Perintah dropIndexes MongoDB

MongoDB memiliki perintah administrasi yang disebut dropIndexes yang menjatuhkan satu atau beberapa indeks (kecuali indeks pada _id field) dari koleksi yang ditentukan.

Contoh Indeks

Misalkan kita memiliki koleksi yang disebut posts dengan indeks berikut:

db.pets.getIndexes()

Hasil:

[
	{
		"v" : 2,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_"
	},
	{
		"v" : 2,
		"key" : {
			"title" : 1
		},
		"name" : "title_1"
	},
	{
		"v" : 2,
		"key" : {
			"tags" : 1
		},
		"name" : "tags_1"
	},
	{
		"v" : 2,
		"key" : {
			"_fts" : "text",
			"_ftsx" : 1
		},
		"name" : "body_text",
		"weights" : {
			"body" : 1
		},
		"default_language" : "english",
		"language_override" : "language",
		"textIndexVersion" : 3
	}
]

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 dapat dihapus.

Lepaskan Satu Indeks

Untuk menghapus indeks tunggal, berikan nama koleksi, serta nama indeks atau dokumen spesifikasinya.

Contoh:

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

Dalam hal ini, kami memberikan nama indeks.

Menjalankan yang menghasilkan output berikut:

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

Ini memberitahu kita bahwa indeks dijatuhkan.

Atau, kita bisa menggunakan dokumen spesifikasi indeks daripada namanya, seperti ini:

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

Lepaskan Beberapa Indeks

Jika Anda ingin menghapus beberapa indeks (tetapi tidak semua indexes), berikan nama indeks dalam array.

Contoh:

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

Hasil:

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

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

db.posts.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).

Saat melewati sebuah array, indeks teks hanya dapat dijatuhkan dengan menentukan nama indeks. Dalam kasus seperti itu, Anda tidak dapat menghapus indeks teks dengan menentukan dokumen spesifikasinya, seperti yang dapat Anda lakukan dengan indeks lainnya.

Lepaskan Semua Indeks

Anda dapat menghapus semua indeks dengan menggunakan wildcard asterisk (* ).

Untuk contoh ini, saya telah membuat ulang indeks. Jadi indeks terlihat seperti ini::

db.products.getIndexes()

Hasil:

[
	{
		"v" : 2,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_"
	},
	{
		"v" : 2,
		"key" : {
			"title" : 1
		},
		"name" : "title_1"
	},
	{
		"v" : 2,
		"key" : {
			"tags" : 1
		},
		"name" : "tags_1"
	},
	{
		"v" : 2,
		"key" : {
			"_fts" : "text",
			"_ftsx" : 1
		},
		"name" : "body_text",
		"weights" : {
			"body" : 1
		},
		"default_language" : "english",
		"language_override" : "language",
		"textIndexVersion" : 3
	}
]

Sekarang mari kita lepaskan semua indeks sekaligus:

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

Hasil:

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

Semua indeks dihapus kecuali untuk _id index (indeks itu 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.

Dokumentasi MongoDB

Lihat dokumentasi MongoDB untuk informasi lebih lanjut tentang dropIndexes perintah.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kelompokkan catatan berdasarkan bulan dan hitung - Mongoose, nodeJs, mongoDb

  2. Temukan dan Hitung elemen koleksi dengan Mongoose

  3. Bidang yang Dihasilkan Otomatis untuk MongoDB menggunakan Spring Boot

  4. Performa Pengurangan Peta di MongoDb 2.2, 2.4, dan 2.6

  5. Mongodb -- menyertakan atau mengecualikan elemen tertentu dengan c# driver