MongoDB超时问题(Node.js)
问题描述:
我在Node.JS中有一个应用程序,它基本上每30分钟从WebAPI检索一个数据快照。 当我尝试通过使用聚合查询来询问数据库时,该应用程序触发与超时有关的错误(MongoError:连接1到127.0.0.1:27017超时)。从我的日志中我发现它恰好是30秒。 的汇总查询是这样的:MongoDB超时问题(Node.js)
collection.aggregate([{
"$group": {
"_id": {
country: "$country",
user: "$user"
}
}
}]).
我测试查询不同的客户端(但同一个数据库)上,它需要aprox的60秒25.000.000记录。我的假设是有一个超时参数,其值为30秒,阻止我的应用程序完成查询。 有人能告诉我如何在Node.JS中设置此参数吗?我正在使用'mongodb'js库,我的主机是Windows。
由于这是一个个人项目,我想调查如何使用MongoDB代替更传统的解决方案,如Oracle或MySQL,但由于分析是整个应用程序的核心部分,因此这可能是一个难题。
答
我在这个答案中找到了一个解决方案:"Server x timed out" during MongoDB aggregation。
基本上,连接字符串现在看起来是这样的:
this.server = 'mongodb://127.0.0.1:27017/test?socketTimeoutMS=90000';
的socketTimeoutMS
的伎俩,我不弄了连接超时错误。
“该应用程序触发与超时有关的错误”听起来有点模糊。这个错误究竟是怎样的?它从何而来? – pdenes
错误是这样的:MongoError:连接1到127.0.0.1:27017超时 – Bogdan