连接到(具有)node-mongodb-native 的池的正确方法

Correct way to connect to (a pool with) node-mongodb-native

对于 MongoDB,建议始终重复使用相同的数据库连接,并有一个连接池来支持某些并发性。

node-mongodb-native 1.x 中,您可以配置数据库和服务器对象,创建一个像这样的池:

var server = new Server(
    config.host,
    config.port,
    {
        auto_reconnect  : true,
        poolSize        : 5    // <= here is the pool
    }
);

var db = new Db(
    config.database,
    server
);

db.open(function(err, db) {
    // ...
}

2.0 中,他们弃用了除 MongoClient 之外的所有连接:

MongoClient.connect(URI, callback);

在哪里添加池选项?我现在自动拥有一个游泳池吗?

对于 2.1 他们更进一步并建议使用生成器:https://mongodb.github.io/node-mongodb-native/2.1/reference/ecmascript6/connecting/

这是否再次有效地为每个操作使用单独的连接?使用池是否过时了?

MongoClient.connect 采用可选的 options 参数和 server 字段,可让您设置连接池的大小:

const options = {
    server: {
        poolSize: 10
    }
};
MongoClient.connect(url, options, callback);

如果不指定,默认 poolSize 为 5。server 选项已记录 here