createIndexes (インデックスの作成)

最終更新:2026-10-09

createIndexes (インデックスの作成)

createIndexes はコレクションにインデックスを作成します。単一フィールド、複合、ユニーク、TTL、テキスト、地理空間に対応します。mongosh では通常 db.collection.createIndex({ field: 1 }) のヘルパーを使います。インデックス構築はリソースを消費します。大きなコレクションでは 4.2 以降デフォルトのハイブリッド構築中も読み書きが継続します。複合インデックスのフィールド順序がサポートされるクエリを左右します。

カテゴリ管理コマンド
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.orders.createIndex({ userId: 1, createdAt: -1 })
db.users.createIndex({ email: 1 }, { unique: true })
db.runCommand({ createIndexes: "orders", indexes: [{ key: { userId: 1 }, name: "user" }] })

⚙️ パラメータ

keyインデックスキーと方向(例: { userId: 1, createdAt: -1 })。
unique一意インデックスにする場合は true を設定します。
nameインデックス名。省略時は自動生成されます。

戻り値:numIndexesBefore、numIndexesAfter、および ok を返します

▶ 例

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

// createIndexes: 複合・ユニークインデックス
use shop
db.orders.createIndex({ userId: 1, createdAt: -1 })
db.users.createIndex({ email: 1 }, { unique: true })

出力:

{ numIndexesBefore: 1, numIndexesAfter: 2, ok: 1 }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q複合インデックスではフィールドをどう並べますか?
A等価フィルタのフィールドを先に、範囲・ソートのフィールドを後に置きます。
Qユニークインデックスで重複を挿入するとどうなりますか?
Aduplicate key エラーで挿入が失敗します。
Qインデックス作成はデータベースをロックしますか?
A4.2 以降のハイブリッド構築では読み書きが継続しますが、CPU と I/O は消費されます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%