MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

Node.js Mongodb- मूल ड्राइवर कनेक्शन साझा करना

आपके पास एक पुस्तकालय हो सकता है जो इसे अच्छी तरह से लपेटता है - इसका मतलब है कि डेटाबेस से केवल एक कनेक्शन खोला जाएगा और दूसरे अनुरोध के लिए वही (खुला) कनेक्शन वापस कर दिया जाएगा - यदि आपको प्रति सेकंड 1000+ मिल रहे हैं, तो यह है एक मेक-या-ब्रेक समस्या (अर्थात प्रत्येक अनुरोध कनेक्शन को फिर से नहीं खोलना)...

users.js :

var connections = require('./connections.js');

var serverCache = connections('127.0.0.1', 27017); 

module.exports = {
  create: function(newData, callback){
    serverCache('main', 'users', function(e, collection){
      collection.insert(newData, callback);
    })
  }
}

connections.js

var mongo = require('mongodb');

// a mongo connection cache
// pass in host & port
// it returns a function accepting dbName, collectionName & callback
var mongoCache = function(host, port){

  // keep our open connections
  var mongoDatabases = {};

  var ensureDatabase = function(dbName, readyCallback){
    // check if we already have this db connection open
    if(mongoDatabases[dbName]){
      readyCallback(null, mongoDatabases[dbName]);
      return;
    }

    // get the connection
    var server = new mongo.Server(host, port, {auto_reconnect: true});

    // get a handle on the database
    var db = new mongo.Db(dbName, server);
    db.open(function(error, databaseConnection){
      if(error) throw error;

      // add the database to the cache
      mongoDatabases[dbName] = databaseConnection;

      // remove the database from the cache if it closes
      databaseConnection.on('close', function(){
        delete(mongoDatabases[dbName]);
      })

      // return the database connection
      readyCallback(error, databaseConnection);
    })
  }

  var ensureCollection = function(dbName, collectionName, readyCallback){

    ensureDatabase(dbName, function(error, databaseConnection){
      if(error) throw error;

      databaseConnection.createCollection(collectionName, function(error, collection) {
        if(error) throw error;

        // return the collection finally
        readyCallback(error, collection);
      })

    })
  }

  return ensureCollection;
}

module.exports = mongoCache;


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. com.mongodb.MongoClientSettings तक नहीं पहुंच सकता - MongoDB जावा ड्राइवर 3.7+

  2. क्या कोई कारण हैं कि मुझे अपने रीस्टफुल यूआरएल में ऑब्जेक्ट आईडी का उपयोग क्यों नहीं करना चाहिए/नहीं करना चाहिए?

  3. मोंगो $ मौजूद है क्वेरी सही दस्तावेज़ नहीं लौटाती है

  4. नवीनतम और निकटतम पोस्ट खोजें, सीमा 20

  5. CastError:ObjectId पर कास्ट मॉडल के लिए पथ _id पर मूल्य मार्ग-नाम के लिए विफल रहा