MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Node.js i MongoDB, ponowne wykorzystanie obiektu DB

Zawsze możesz napisać moduł, który inicjuje połączenia z bazą danych i udostępnia je w całym programie. Na przykład:

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);
  });
};

Wiem, że ludzie mówią o poolingu, ale kiedy przeprowadziłem analizę porównawczą łączenia połączeń mongo z pojedynczym połączeniem dla wszystkich żądań, pojedyncze połączenie faktycznie działało lepiej. To prawda, było to około rok temu, ale wątpię, żeby zmieniła się podstawowa koncepcja. Wszystkie żądania są asynchroniczne, więc nie jest konieczne wielokrotne nawiązywanie połączeń w celu równoczesnego wysyłania żądań.

Jeśli chodzi o MongoClient, wydaje mi się, że jest to nowa składnia, którą zachęcają. Tak czy inaczej, jest to zasadniczo klient obiekt, który chcesz zachować i udostępnić niezależnie od używanego stylu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. utwórz bezpieczną bazę danych w mongodb

  2. Nie można zapisać bufora do MongoDB GridFS

  3. Mongodb, $suma z warunkiem

  4. Django - MongoDB:(nie można połączyć się z hostem lokalnym:27017) Połączenie odrzucone

  5. Meteor wymaga sudo do uruchomienia