sql >> Database >  >> NoSQL >> MongoDB

Node.js en MongoDB, waarbij het DB-object opnieuw wordt gebruikt

U kunt altijd een module schrijven die uw databaseverbindingen initialiseert en deze in uw hele programma toegankelijk maakt. Bijvoorbeeld:

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

Ik weet dat mensen praten over pooling, maar toen ik benchmarking deed van het poolen van mongo-verbindingen versus een enkele verbinding voor alle verzoeken, presteerde de enkele verbinding eigenlijk beter. Toegegeven, dit was ongeveer een jaar geleden, maar ik betwijfel of het basisconcept is veranderd. Alle verzoeken zijn asynchroon, dus het is niet zo dat er meerdere verbindingen nodig zijn om gelijktijdige verzoeken te doen.

Wat MongoClient betreft, denk ik dat dat de nieuwe syntaxis is die ze aanmoedigen. Hoe dan ook, het is in wezen een klant object dat u wilt behouden en toegankelijk wilt maken, ongeacht de stijl die u gebruikt.



  1. Het instellen van de optie voor kleine bestanden voor het beheren van journaling heeft geen invloed op de grootte

  2. mongodb query-update selecteer geneste velden

  3. 2 Helm-kaarten met gedeelde Redis-afhankelijkheid

  4. Mongo-aggregatie:waarden in groepen verdelen (per partitie)