在Node.js中从MongoDB获取数据时出错

时间:2016-09-26 11:52:10

标签: node.js mongodb

我正在尝试从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

2 个答案:

答案 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版本之间的连接池重构存在一些小问题。