MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

NodeJS - MongoDB:sử dụng kết nối mở

Khi bạn require('somemodule') và sau đó yêu cầu lại lần thứ hai, nó sẽ sử dụng phiên bản đã tải ALREADY. Điều này cho phép bạn tạo các đĩa đơn khá dễ dàng.

Vì vậy - bên trong 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;

Sau đó, bên trong 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);
  })
}

Và bên trong b.js :

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

Ý tưởng là khi cả hai a.jsb.js gọi getMongoCollection , lần đầu tiên nó sẽ kết nối và lần thứ hai nó sẽ trả về cái đã được kết nối. Bằng cách này, nó đảm bảo bạn đang sử dụng cùng một kết nối (ổ cắm).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo-connector có hỗ trợ thêm trường trước khi chèn vào Elasticsearch không?

  2. Mongo đưa ra lỗi khóa trùng lặp cho các trường có duy nhất:false

  3. Tìm giá trị tối thiểu và giá trị lớn nhất từ ​​mảng trong mongodb

  4. Tự động hoàn thành được lọc bằng mongodb

  5. TypeError:Không thể sử dụng toán tử 'in' để tìm kiếm '_id' ở nam