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

最終更新:2026-10-09

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

createIndex() はクエリを高速化する単一のインデックスを作成します。例: `db.users.createIndex({ age: 1 }, { unique: true })`。値の 1 は昇順、-1 は降順です。text、hashed、2dsphere のインデックスタイプもサポートされています。ユニークインデックスはフィールドの一意性を強制します。大規模コレクションへのインデックス構築には時間がかかり、書き込みをブロックすることがあるため、本番ではオフピークにスケジュールしてください。

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

📝 構文

db.<collection>.createIndex(<keys>, <options>)

⚙️ パラメータ

インデックスキーフィールドと方向のマッピング(例: {age: 1, name: -1})。
オプション任意。unique、sparse、name、background などのオプション。

戻り値:新しいインデックスの名前(文字列)。

▶ 例

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

// createIndex: age に昇順のユニークインデックスを作成する
const idx = db.users.createIndex({ age: 1 }, { unique: true })
idx

出力:

'age_1'

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

QcreateIndex でユニークインデックスを作るには?
Aオプションに {unique: true} を追加します。例: db.users.createIndex({email: 1}, {unique: true})
QcreateIndex はクエリをブロックしますか?
A古いビルドではバックグラウンドモードでも書き込みに短時間影響がありました。4.2+ のハイブリッドビルドは読み書きへの影響がはるかに少ないですが、大規模コレクションではオフピークを推奨します。
Q複合インデックスを作るには?
A複数のフィールドを渡します。例: db.users.createIndex({age: 1, name: -1})。左端プレフィックスを使うクエリが恩恵を受けます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%