maxTimeMS()(设置超时时间)
最后更新:2026-10-09
maxTimeMS()(设置超时时间)
maxTimeMS()为游标操作设置最大执行时间(毫秒),语法为`db.users.find().maxTimeMS(5000)`。超过时限服务器会终止该操作并抛错,常用于防止慢查询长时间占用数据库资源。它是数据库侧的硬超时,与驱动侧的socketTimeout不同。
| 分类 | 游标 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.find(<条件>).maxTimeMS(<毫秒>)
⚙️ 参数
| 毫秒 | 最大执行时间,单位毫秒。 |
|---|
返回值:设置超时后的游标(可继续链式调用)。
▶ 示例
请在本地安装的 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是服务器侧硬限制,到了时间服务器主动终止;驱动超时只是客户端不再等待。