MongoDBは、1つまたは複数のインデックスを削除するいくつかの方法を提供します。
単一のインデックスを削除するには、dropIndex()を使用できます メソッド。
複数のインデックスを削除するには、dropIndexes()のいずれかを使用できます メソッドまたはdropIndexes 管理コマンド。
dropIndex() 方法
インデックスを1つだけ削除する必要がある場合は、dropIndex()を使用できます。 方法。このメソッドは、インデックス名またはその仕様書を受け入れます。
インデックス名を使用してインデックスを削除する例を次に示します。
db.bars.dropIndex("location_2dsphere") 出力:
{ "nIndexesWas" : 3, "ok" : 1 }
これは、location_2dsphereというインデックスが 正常に削除されました。
仕様書を渡してインデックスを削除する例を次に示します。
db.bars.dropIndex( { "name" : 1 } ) 出力:
{ "nIndexesWas" : 2, "ok" : 1 }
このインデックスも削除されたことがわかります。このインデックスには、{ "name" : 1 }の仕様がありました。 、これは私がインデックスを作成するときに使用した仕様書です。
dropIndex() メソッドはdropIndexesのラッパーです コマンド。
dropIndexes() 方法
dropIndexes() 複数のインデックスを削除する必要がある場合は、この方法が便利です。単一のインデックスを削除することもできます。複数(またはすべて)のインデックスを削除できる機能が追加されています。
このメソッドは、ドロップする各インデックスのインデックス名またはその仕様ドキュメントを受け入れます。複数のインデックスを削除する場合は、それらの名前/仕様ドキュメントを配列で指定する必要があります。
インデックス名を使用して2つのインデックスを削除する例を次に示します。
db.pets.dropIndexes( [ "type_1", "name_1" ]) 出力:
{ "nIndexesWas" : 3, "ok" : 1 } テキストインデックスの場合は、インデックス名しか指定できないことに注意してください。
すべてのインデックスを削除できます(_idを除く) インデックス)パラメータを完全に省略して:
db.pets.dropIndexes()
dropIndexes() メソッドはdropIndexesのラッパーです コマンド。
dropIndexes コマンド
dropIndexes コマンドを使用すると、dropIndexes()と同じことを実行できます。 方法。前述のように、dropIndexes() メソッドはdropIndexesのラッパーです コマンド
単一のインデックスを削除する例を次に示します。
db.runCommand( { dropIndexes: "posts", index: "title_1" }) 出力:
{ "nIndexesWas" : 4, "ok" : 1 } また、複数のインデックスを削除する例を次に示します。
db.runCommand( {
dropIndexes: "posts",
index: [ "tags_1", "body_text" ]
}) 結果:
{ "nIndexesWas" : 3, "ok" : 1 }
すべてのインデックスを削除するには(_idを除く) インデックス)、アスタリスクワイルドカード(*)を使用します ):
db.runCommand( { dropIndexes: "posts", index: "*" }) 結果:
{
"nIndexesWas" : 4,
"msg" : "non-_id indexes dropped for collection",
"ok" : 1
}