dropIndexes() (インデックスの一括削除)

最終更新:2026-10-09

dropIndexes() (インデックスの一括削除)

dropIndexes() は1つ以上のインデックスを削除します。例: `db.users.dropIndexes()` は _id 以外のすべてのインデックスを削除し、名前の配列を渡すと特定のものを削除します。また、指定した名前をプレフィックスに持つすべてのインデックスも削除します('age_1' は 'age_1_text' も巻き添えにします)。_id インデックスは常に残ります。テスト環境のクリーンアップによく使われます。

カテゴリインデックスと管理
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.<collection>.dropIndexes(<indexNames>)

⚙️ パラメータ

インデックス名の配列任意。削除する名前。省略すると _id 以外のすべてのインデックスを削除します。

戻り値:削除されたインデックスの件数とステータスを持つ情報オブジェクト。

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// dropIndexes: age と email のインデックスを削除する
db.users.dropIndexes(['age_1', 'email_1'])

出力:

{ ok: 1, nIndexesWas: 4, nIndexesRemoved: 2 }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

QdropIndexes は引数なしですべてのインデックスを削除しますか?
Aはい、_id 以外のすべてです。先に getIndexes() でリストを確認してください。
QdropIndexes で特定のインデックスを対象にできますか?
Aできます。名前の配列を渡します。例: db.users.dropIndexes(['age_1', 'email_1'])
Qなぜ dropIndexes は 'age_1' より多く削除するのですか?
A名前のプレフィックスで一致するため、'age_1' で始まるすべてのインデックス(例: 'age_1_text')も削除されます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%