检查下面的代码:
const mongodb = require('mongodb');
const express = require('express');
const app = express();
let db;
const options = {};
mongodb.MongoClient.connect('mongodb://localhost:27017/test', options, function(err, database) {
if (err) throw err;
db = database.db('test');
app.listen(process.env.PORT || 3000, function() {
console.log(`Express.js server up.`);
});
});
app.get('/', function (req, res) {
db.collection('test').countDocuments({}, function(err, count) {
return res.json({'documentCount': count});
});
});
这是在 MongoDB 中执行计数操作的简单代码。我对上述代码的理解是,我创建一个MongoDB连接并将其分配给db
,然后在需要执行查询的地方重用它。
每次
.connect()
创建一个新的连接池,而不是一个连接
另外,这篇文章指出:
池大小是确定使用同一连接可以并行运行多少个查询的选项,类似于隧道中的车道数量。
如果该connect()
方法正在创建 apool
而不是connection
,那么在什么时候创建连接?query
每个都在指定的池中创建一个新连接(或重用)吗?
如果我.connect()
在代码中仅使用poolSize: 5
. 它会立即创建 5 个连接吗?