Bạn luôn có thể viết một mô-đun khởi tạo các kết nối cơ sở dữ liệu của bạn và làm cho chúng có thể truy cập được trong suốt chương trình của bạn. Ví dụ:
mongo.js
var mongodb = require('mongodb');
module.exports.init = function (callback) {
var server = new mongodb.Server("127.0.0.1", 27017, {});
new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
//export the client and maybe some collections as a shortcut
module.exports.client = client;
module.exports.myCollection = new mongodb.Collection(client, 'myCollection');
callback(error);
});
};
app.js
var mongo = require('./mongo.js');
//setup express...
//initialize the db connection
mongo.init(function (error) {
if (error)
throw error;
app.listen(80); //database is initialized, ready to listen for connections
});
randomFile.js
var mongo = require('./mongo.js');
module.exports.doInsert = function () {
//use the collection object exported by mongo.js
mongo.myCollection.insert({test: 'obj'}, {safe:true}, function(err, objects) {
if (err)
console.warn(err.message);
});
};
Tôi biết mọi người nói về việc gộp chung, nhưng khi tôi đo điểm chuẩn của việc gộp các kết nối mongo so với một kết nối duy nhất cho tất cả các yêu cầu, kết nối đơn lẻ thực sự hoạt động tốt hơn. Đúng là, đây là khoảng một năm trước, nhưng tôi nghi ngờ rằng khái niệm cơ bản đã thay đổi. Tất cả các yêu cầu đều không đồng bộ, vì vậy không phải cần nhiều kết nối để thực hiện các yêu cầu đồng thời.
Đối với MongoClient, tôi đoán đó là cú pháp mới mà họ đang khuyến khích. Dù bằng cách nào, về cơ bản nó là một khách hàng đối tượng mà bạn muốn giữ lại và có thể truy cập được bất kể bạn sử dụng kiểu nào.