hint() (インデックスの強制)

最終更新:2026-10-09

hint() (インデックスの強制)

hint() はクエリに特定のインデックスを使うよう強制します: `db.users.find({ age: { $gt: 20 } }).hint({ age: 1 })`。インデックスのキーまたは名前を渡します。通常はオプティマイザがうまく選びますが、データ分布が偏っている場合、hint() は誤った選択を上書きできます。本番では控えめに使い、インデックスが引き続き適切かを再確認してください。

カテゴリカーソル
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.<collection>.find(<filter>).hint(<indexKeyOrName>)

⚙️ パラメータ

インデックスキーまたは名前強制するインデックス(例: {age: 1} または 'age_1')。

戻り値:インデックスを強制したカーソル(チェーン可能)。

▶ 例

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

// hint: age_1 インデックスを強制する
const result = db.users.find({ age: { $gt: 20 } })
  .hint({ age: 1 })
  .toArray()
result.length

出力:

35

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Qhint はインデックスとどう関係しますか?
Ahint() はオプティマイザの選択を迂回して、クエリを指定のインデックスに強制します。オプティマイザが誤る場合の修正手段です。
Q指定したインデックスが存在しない場合は?
Aクエリは即座にエラーになります。他のインデックスへのフォールバックはありません。
Qhint でコレクションスキャンを強制するには?
Ahint({$natural: 1}) を渡します。物理的な順序でドキュメントをスキャンします。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%