आप हमेशा एक मॉड्यूल लिख सकते हैं जो आपके डेटाबेस कनेक्शन को इनिशियलाइज़ करता है, और उन्हें आपके पूरे प्रोग्राम में एक्सेस करने योग्य बनाता है। उदाहरण के लिए:
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);
});
};
मुझे पता है कि लोग पूलिंग के बारे में बात करते हैं, लेकिन जब मैंने पूलिंग मोंगो कनेक्शन बनाम सभी अनुरोधों के लिए एकल कनेक्शन की बेंचमार्किंग की, तो एकल कनेक्शन ने वास्तव में बेहतर प्रदर्शन किया। दी, यह लगभग एक साल पहले था, लेकिन मुझे संदेह है कि मूल अवधारणा बदल गई है। सभी अनुरोध अतुल्यकालिक हैं, इसलिए ऐसा नहीं है कि एक साथ अनुरोध करने के लिए एकाधिक कनेक्शन आवश्यक हैं।
जहां तक मोंगो क्लाइंट है, मुझे लगता है कि यह नया वाक्यविन्यास है जिसे वे प्रोत्साहित कर रहे हैं। किसी भी तरह से, यह अनिवार्य रूप से एक क्लाइंट है आप जिस भी शैली का उपयोग करते हैं उस पर ध्यान दिए बिना आप जिस वस्तु को रखना और सुलभ बनाना चाहते हैं।