mongodb连接超时错误
我用mongodb数据库和node.js v12.0.10来连接和更新mongodb集合。 连接代码如下:
async.parallel({ RE5: function (cb) { MongoClient.connect(config.riskEngineDB, function (err, r5DB) { cb(err, r5DB); }) }, MDB: function (cb) { MongoClient.connect(config.monitoringDB, function (err, mDB) { cb(err, mDB); }) } }, function (err, DBs) { assert.equal(null, err); console.log("Connected correctly to Dbs"); // ..doing updates..
})
经过一段时间的运行,脚本打印出如下错误:
{ [MongoError: connection 39 to 127.0.0.1:27017 timed out] name: 'MongoError', message: 'connection 39 to 127.0.0.1:27017 timed out' }
为了您的信息,我使用了不同的mongodb连接选项,但没有任何意义。
由于查询花了太多时间来回复,我也有类似的经历
您在节点mongo驱动程序中有两个可configuration的超时:
connectTimeoutMS
和socketTimeoutMS
,都默认为30秒( http://mongodb.github.io/node-mongodb-native/2.2/reference/connecting/connection-settings/ )
如果您的查询需要30秒以上的时间才能发送第一个结果,则会以连接超时错误结束。
如果您的查询在两个结果之间花费超过30秒,则可能会由于池缩小而导致连接closures。
您可能希望增加超时,或者确保您的查询足够快(例如,创build一个索引)。 我build议加快查询,因为增加超时可能会有性能下降。