インデックスの削除
コレクションから特定のインデックスを削除できます。 パフォーマンスに悪影響が見られる場合、新しいインデックスに置き換えたい、またはインデックスが不要になった場合は、インデックスを削除する必要がある場合があります。
インデックスを削除するには、次のいずれかの shell メソッドを使用します。
方式 | 説明 |
---|---|
コレクションから特定のインデックスを削除します。 | |
コレクションまたはインデックスの配列からすべての削除インデックスを削除します(指定されている場合)。 |
このタスクについて
_id
フィールドのデフォルト インデックス以外の任意のインデックスを削除できます。 _id
インデックスを削除するには、コレクション全体を削除する必要があります。
本番環境で頻繁に使用されているインデックスを削除すると、パフォーマンスが低下する可能性があります。 インデックスを削除する前に、 インデックスを非表示にして 、削除の潜在的な影響を評価することを検討してください。
始める前に
インデックスを削除するには、その名前が必要です。 コレクションのすべてのインデックス名を取得するには、 getIndexes()
メソッドを実行します。
db.<collection>.getIndexes()
手順
削除するインデックスを識別したら、指定されたコレクションに対して次のいずれかの削除メソッドを使用します。
単一インデックスの削除
特定のインデックスを削除するには、 dropIndex()
メソッドを使用してインデックス名を指定します。
db.<collection>.dropIndex("<indexName>")
複数のインデックスの削除
複数のインデックスを削除するには、 dropIndexes()
メソッドを使用してインデックス名の配列を指定します。
db.<collection>.dropIndexes( [ "<index1>", "<index2>", "<index3>" ] )
インデックスを除くすべてのインデックスを削除_id
_id
インデックスを除くすべてのインデックスを削除するには、 dropIndexes()
メソッドを使用します。
db.<collection>.dropIndexes()
結果
インデックスを削除すると、システムは操作のステータスに関する情報を返します。
出力例:
... { "nIndexesWas" : 3, "ok" : 1 } ...
nIndexesWas
の値は、インデックスを削除する前のインデックスの数を反映します。
インデックスが削除されたことを確認するには、 db.collection.getIndexes()
メソッドを実行します。
db.<collection>.getIndexes()
削除されたインデックスはgetIndexes()
の出力に表示されなくなりました。
詳細
既存のインデックスの管理の詳細については、「インデックスの管理 」を参照してください。
MongoDB Compassでインデックスを削除する方法については、「 Compass でのCompassの管理 」を参照してください。