MongoDB超时问题(Node.js)

Bog*_*dan 3 mongodb node.js aggregation-framework

我在Node.JS中有一个应用程序,它基本上每30分钟从WebAPI检索一次数据快照。当我尝试使用聚合查询查询数据库时,该应用程序触发与超时有关的错误(MongoError:连接1到127.0.0.1:27017超时)。从我的日志中,我看到恰好是30秒。聚合查询如下所示:

collection.aggregate([{
            "$group": {
                "_id": {
                    country: "$country",
                    user: "$user"
                }
            }
        }]).
Run Code Online (Sandbox Code Playgroud)

我在不同的客户端(但使用相同的数据库)上测试了该查询,它需要大约60秒才能处理25.000.000条记录。我的假设是有一个超时参数,其值为30秒,该参数阻止我的应用程序完成查询。有人可以告诉我如何在Node.JS中设置此参数吗?我正在使用“ mongodb” js库,并且我的主机是Windows。

由于这是一个个人项目,因此我想研究如何使用MongoDB代替更传统的解决方案(例如Oracle或MySQL),但这可能会破坏交易,因为分析是整个应用程序的核心部分。

Bog*_*dan 6

我在以下答案中找到了解决方案:MongoDB聚合期间“服务器x超时”

基本上,连接字符串现在看起来像这样:

this.server = 'mongodb://127.0.0.1:27017/test?socketTimeoutMS=90000';
Run Code Online (Sandbox Code Playgroud)

socketTimeoutMS做的伎俩,我不明白了超时错误的连接。