我的NodeJS服务器过去使用版本“ mongodb”:“ ^ 2.2.33”中的旧语法连接到我的远程MongoDB实例。但是,在我更新了新版本3.1.3的语法之后,数据获取似乎明显变慢了。似乎连接的身份验证/检索客户端花费的时间比以前更长。有人遇到过吗?有什么建议吗?
下面的MONGODB_HOST变量的格式为:[用户名:密码@IP地址]
之前(对于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,谢谢!