sql >> データベース >  >> NoSQL >> MongoDB

NodeJS-MongoDB:開始接続を使用する

    require('somemodule')の場合 その後、もう一度要求すると、すでにロードされているインスタンスが使用されます。これにより、シングルトンを非常に簡単に作成できます。

    つまり、sharedmongo.jsの内部 :

    var mongo = require('mongodb');
    
    // this variable will be used to hold the singleton connection
    var mongoCollection = null;
    
    var getMongoConnection = function(readyCallback) {
    
      if (mongoCollection) {
        readyCallback(null, mongoCollection);
        return;
      }
    
      // get the connection
      var server = new mongo.Server('127.0.0.1', 27017, {
        auto_reconnect: true
      });
    
      // get a handle on the database
      var db = new mongo.Db('squares', server);
      db.open(function(error, databaseConnection) {
        databaseConnection.createCollection('testCollection', function(error, collection) {
    
          if (!error) {
            mongoCollection = collection;
          }
    
          // now we have a connection
          if (readyCallback) readyCallback(error, mongoCollection);
        });
      });
    };
    module.exports = getMongoConnection;
    

    次に、a.jsの内部 :

    var getMongoConnection = require('./sharedmongo.js');
    var b = require('./b.js');
    module.exports = function (req, res) {
      getMongoConnection(function(error, connection){
        // you can use the Mongo connection inside of a here
        // pass control to b - you don't need to pass the mongo
        b(req, res);
      })
    }
    

    そしてb.jsの内部 :

    var getMongoConnection = require('./sharedmongo.js');
    module.exports = function (req, res) {
      getMongoConnection(function(error, connection){
        // do something else here
      })
    }
    

    アイデアは、両方のa.js およびb.js getMongoCollectionを呼び出します 、1回目は接続し、2回目はすでに接続されているものを返します。このようにして、同じ接続(ソケット)を使用していることを確認します。




    1. Springデータredisはデフォルトのシリアライザーをオーバーライドします

    2. Redis Python-Pythonで反復せずに、特定のパターンに従ってすべてのキーを削除する方法

    3. または演算子を使用したモルヒネクエリ

    4. クラウドデータベースを管理するためにAWSにClusterControlをデプロイする方法