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のドキュメントを参照してください。 メソッド。