gpt4 book ai didi

node.js - MongoDB 中集合级别的数据库池?

转载 作者:行者123 更新时间:2023-12-03 15:59:08 24 4
gpt4 key购买 nike

我使用 NodeJS 在 MongoDB 中使用数据库池,而不是在每个请求上创建单独的客户端对象。连接池甚至在集合级别也能工作(如果集合在路由之间共享),还是必须通过数据库客户端对象访问集合才能使连接池工作?

例如,考虑以下代码(dbURL 不包含数据库名称):

        const dbURL = 'mongodb://127.0.0.1:27017'
const client = new MongoClient(dbURL, {
poolSize: 100
});

client.connect((err, db)=>{
if (err) {
console.log('ERROR in database connection!');
reject();
return;
}
const userCollection = db.db('mydb').collection('users);
//userCollection is shared between routes
});

如果 userCollection 在各个路由之间共享,数据库池仍然有效吗?或者它只在客户端级别工作(我的代码中名为 db 的对象)?它也可以在数据库级别工作( db.db('mydb') - 返回实际数据库)吗?

换句话说,连接池的工作级别是什么?

a.客户端对象级别

b.数据库级别

c.收藏级别

最佳答案

您问题的答案是a。客户端对象

想象一下您要去商店。拥有客户端对象就像已经在商店一样。切换数据库和集合类似于选择购买哪个。您已经在商店了,所以选择要买的东西是免费的。

<小时/>

这里是docs说,只要你调用 MongoClient.connect 一次,你基本上就已经池化了数据库连接。 mongodb 驱动程序处理其余的复杂性。

关于node.js - MongoDB 中集合级别的数据库池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61939753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com