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 }