首页 > 解决方案 > 减少 MongoDB 延迟

问题描述

我的 NodeJS 服务器曾经使用版本“mongodb”中的旧语法连接到我的远程 MongoDB 实例:“^2.2.33”。但是,在我更新了新版本 3.1.3 的语法后,数据获取似乎明显变慢了。连接的身份验证/检索客户端似乎比以前花费了更长的时间。有没有人遇到过这个问题?对此有什么建议吗?

以下 MONGODB_HOST 变量的格式为:[username:password@IP_address]

之前(对于版本 2.2.33):

mongoClient.connect(`mongodb://${process.env.MONGODB_HOST}:27017/test`, function(err, db){
    console.log("Mongo client connected");
    db.collection('data')
        .find({ ... })
        .sort({ time: 1 })
        .toArray(function(err, items){
            console.log(items);
            db.close();
        }
});

之后(版本 3.1.3):

mongoClient.connect(`mongodb://${process.env.MONGODB_HOST}:27017/test`, { useNewUrlParser: true }, function (err, client) {
        if(err) console.log(err);
        const db = client.db('data');
        db.collection(collection)
            .find(query)   // query parameters in JSON object
                .sort({ time: 1 })
                .toArray(function (err, items) {
                    console.log(items);
                    client.close();
                 });
});

编辑: 在使用 console.time 测量延迟几次后,结果发现实际上两个版本都同样慢。例如,连接时间约为 2700 毫秒,而从远程 MongoDB 服务器(包括连接和身份验证)仅获取约 1 小时的数据(约 2593 条记录)需要约 6800 毫秒。我仍在积极寻找如何减少这种延迟的方法,无论是在 MongoDB 上,还是愿意更换为(低成本)低延迟 NoSQL DB,谢谢!

标签: node.jsmongodb

解决方案


推荐阅读