我正在尝试从MongoDB获取数据,每次数据库连接都没问题,没有任何错误。但是当我尝试获取数据时,它会给出以下错误:
{ [MongoError: connection 5 to c1669.candidate.18.mongolayer.com:11669 timed out]
name: 'MongoError',
message: 'connection 5 to c1669.candidate.18.mongolayer.com:11669 timed out' }
但是前10到11次尝试都是好的,并且从mongo得到了预期的数据,后来我不断地通过上述错误介绍了。
更多信息:使用mongodb npm module。
答案 0 :(得分:1)
我认为它的连接池大小问题,因为你说前10-11次尝试是好的,所以可能你已经为连接定义了非常有限的池大小,所以当你创建连接时,超过限制后它不允许查询数据库。请检查它,因为我不确定没有看到代码,但这可能是原因。
<强>更新强>
在连接到db时尝试以下选项。
var dbOptions = {
server: {
socketOptions: {
keepAlive: 100,
connectTimeoutMS: 30000
}
}
};
mongoose.connect('mongodb://localhost/db', dbOptions);
请参阅此链接,因为您似乎正在使用replicaset。 https://github.com/Automattic/mongoose/issues/2089
答案 1 :(得分:0)
请更新到mongodb驱动程序2.2.10+
版本 - 因为2.1.11-2.2.4版本之间的连接池重构存在一些小问题。
见