node.js - MongoDB 超时问题 (Node.js)

标签 node.js mongodb aggregation-framework

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

collection.aggregate([{
            "$group": {
                "_id": {
                    country: "$country",
                    user: "$user"
                }
            }
        }]).

我在不同的客户端(但相同的数据库)上测试了该查询,对于 25.000.000 条记录大约需要 60 秒。我的假设是,有一个值为 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 成功了,我不再收到连接超时错误。

关于node.js - MongoDB 超时问题 (Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39087570/

相关文章:

Node.js & Redis 获取关键数据

java - 通过并行查询并使用线程池来加速 mongo 查询?

javascript - 验证来自 Mongo 的 JSON?

node.js - 带项目和过滤器的 Mongoose 查询

java - Spring框架中子文档数组字段中的过滤数组

javascript - 根据类别更新对象类型的mongodb字段

javascript - Express js 4,Parse.com JSON 错误

javascript - 在 nodeJS 中每小时运行一次调度作业

javascript - 我们如何在 nodeJS 中使用 module.exports 返回函数?

mysql - LAMP 和 MEAN 堆栈中没有特定的读取性能差异