maxTimeMS() (時間制限の設定)
最終更新:2026-10-09
maxTimeMS() (時間制限の設定)
maxTimeMS() はカーソル操作が実行できる時間をミリ秒単位で制限します: `db.users.find().maxTimeMS(5000)`。制限を超えるとサーバーは操作を中断してエラーを投げます。遅いクエリがリソースを占有するのを防ぐガードです。サーバー側のハードタイムアウトであり、ドライバ側のソケットタイムアウトとは異なります。
| カテゴリ | カーソル |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.find(<filter>).maxTimeMS(<ms>)
⚙️ パラメータ
| ミリ秒 | 最大実行時間(ミリ秒単位)。 |
|---|
戻り値:時間制限を適用したカーソル(チェーン可能)。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// maxTimeMS: クエリを5秒に制限する
const result = db.users.find()
.maxTimeMS(5000)
.toArray()
result.length
出力:
1000
📌 注意事項
- タイムアウトするとサーバーは操作を中断し、エラーを投げる
- 単位はミリ秒。5000 は5秒を意味する
- アグリゲーションや findAndModify 形式の書き込みにも適用される
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
QmaxTimeMS を超えるとどうなりますか?
Aサーバーが操作を終了させ、タイムアウトエラーを投げます。try/catch で捕捉してください。
QmaxTimeMS の単位は?
Aミリ秒です。maxTimeMS(1000) は最大1秒を意味します。
QmaxTimeMS はドライバのタイムアウトと同じですか?
Aいいえ。maxTimeMS は操作を終了させるサーバー側のハードリミットです。ドライバのタイムアウトはクライアントが待つのを止めるだけです。