You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何降低Mongoose中MongoDB操作的缓冲超时时间?

调整Mongoose操作缓冲超时时间的方法

你遇到的buffering timed out错误是Mongoose自身的操作缓冲队列超时,和MongoDB驱动的serverSelectionTimeoutMS、socketTimeoutMS等参数无关,需要通过Mongoose专属的bufferTimeoutMS选项调整。以下是具体实现方式:

全局生效(所有模型共用)

在调用mongoose.connect()时,直接在配置选项中设置bufferTimeoutMS:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/your_database_name', {
  bufferTimeoutMS: 3000 // 将超时时间设为3000ms(3秒)
});

单个模型生效(仅目标模型)

如果只需调整特定模型的缓冲超时,在定义Schema时传入该选项:

const settingsSchema = new mongoose.Schema({
  // 你的Schema字段定义
}, {
  bufferTimeoutMS: 3000
});

const Settings = mongoose.model('settings', settingsSchema);

补充说明

  • Mongoose默认会缓冲未建立连接时发起的数据库操作,bufferTimeoutMS就是控制这个缓冲队列的超时时间,超过设定值后就会抛出你遇到的缓冲超时错误。
  • 你之前尝试的serverSelectionTimeoutMS是驱动选择MongoDB服务器的超时,socketTimeoutMS是socket连接的读写超时,wtimeoutMS是写操作的确认超时,均不影响Mongoose的操作缓冲逻辑,所以无法解决问题。

内容的提问来源于stack exchange,提问作者Timothy Pham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:33:09