MongoDBでインデックスを削除する方法はいくつかありますが、その1つは、dropIndex()
を使用することです。 メソッド。
使い方はとても簡単です。インデックスの名前またはその定義/仕様書を渡すだけです。テキストインデックスの場合は、インデックス名のみを指定できます。
インデックスの例
bars
というコレクションがあるとします。 。 getIndexes()
を使用できます インデックスを確認するには:
db.bars.getIndexes()
結果:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" }, { "v" : 2, "key" : { "location" : "2dsphere" }, "name" : "location_2dsphere", "2dsphereIndexVersion" : 3 }, { "v" : 2, "key" : { "name" : 1 }, "name" : "name_1", "hidden" : true } ]
bars
には3つのインデックスがあることがわかります コレクション。
- 最初のインデックスは
_id
にあります 分野。 MongoDBは、_id
に一意のインデックスを作成します コレクションの作成中のフィールド。このインデックスを削除することはできません。 - 2番目のインデックスは、
location
の2dsphereインデックスです。 フィールド。 - 3番目のインデックスは
name
にあります 分野。この場合、それはたまたま非表示のインデックスです("hidden" : true
その仕様で)。
名前でインデックスを削除
インデックスの名前をdropIndex()
に渡してインデックスを削除する例を次に示します。 方法:
db.bars.dropIndex("location_2dsphere")
出力:
{ "nIndexesWas" : 3, "ok" : 1 }
これは、インデックスが正常に削除されたことを示しています。
仕様に従ってインデックスを削除する
仕様書をdropIndex()
に渡してインデックスを削除する例を次に示します。 方法:
db.bars.dropIndex( { "name" : 1 } )
出力:
{ "nIndexesWas" : 2, "ok" : 1 }
このインデックスも削除されたことがわかります。
これが非表示にされたインデックスであることを思い出してください。非表示のインデックスは問題なく削除できます(削除する前に非表示を再表示する必要はありません)。
結果を確認する
getIndexes()
を実行してみましょう もう一度結果を確認します:
db.bars.getIndexes()
結果:
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
今回は、インデックスが1つだけです。デフォルトの_id
インデックス。
dropIndex()
メソッドはdropIndexes
のラッパーです コマンド。
MongoDBドキュメント
dropIndex()
の詳細については、MongoDBのドキュメントを参照してください。 メソッド。