1、通过 db.serverStatus().connections 查看可用连接数,已用连接数
2、建立一次连接,该连接的操作会马上执行,执行完也会马上执行下个操作,但是不能同时开始两个操作,否则后面的操作会新建连接,等待时间较长。
3、如下代码,当time足够小的时候会新建连接,当它大于第一个操作执行完的时候,不会新建连接。
MongoClient.connect(url, { useNewUrlParser: true }, function(err, client) {
const db = client.db(dbName);
const coll = db.collection('account');
console.log('start');
coll.findOne({_id: ObjectId('5d29cd56fdbfe11d38b4da4d')}, (err,result)=> {
console.log(result.tdid);
});
setTimeout(()=>{
coll.findOne({_id: ObjectId('5d29cd56fdbfe11d38b4da4d')}, (err,result)=> {
console.log(result.tdid);
});
},50);
});
4、考虑使用连接池来减少频繁的创建删除连接的开销。
5、win10 + nodejs + MongoDB4.0 + node driver 3.2.7 建立一次连接耗时 2s 多,Linux没问题,python没问题
6、正确的设计应该是建立连接池,然后指派连接给不同的程序接口