sql >> Database >  >> NoSQL >> MongoDB

Is het nodig om de MongoDB-verbinding te openen elke keer dat ik met de DB wil werken?

Ik zou afraden om één verbinding te onderhouden als je enige vorm van schaalbaarheid wilt.

Er zijn een aantal opties voor het poolen van verbindingen, enz., maar de meeste mensen die tijd doorbrengen met Node en MongoDB, verhuizen op een gegeven moment naar Mongoose.

Naast het toevoegen van een mooie schemalaag, biedt het verbindingsabstractie, zodat u standaard een gedeelde verbinding kunt gebruiken door mongoose.connect() aan te roepen , of u kunt meerdere verbindingen maken of deelnemen aan pooling van verbindingen door mongoose.createConnection() te bellen . In beide gevallen bel je het zonder terugbellen, en de mangoestmachine zal volgende oproepen naar de module uitstellen tot nadat de verbinding tot stand is gebracht, zodat je code er niets om hoeft te geven.

Zoiets als uw gebruiksscenario kan er als volgt uitzien:

// in your app.js or server.js file
var mongoose = require('mongoose');
mongoose.connect(config.db.url); // assuming you have some module that handles config variables

Dan in ./models/user.js

const mongoose = require('mongoose'),
         Schema   = mongoose.Schema;

   const UserSchema = new Schema({
      name: String,
      age: Number,
      roles: [String]
   });
   mongoose.model('User',UserSchema);

tot slot, laten we zeggen een seed-functie om uw eerste batch gebruikers te maken:

const mongoose = require('mongoose'),
      User     = mongoose.model('User');

// create some users
var user1 = new User({name: 'modulus admin', age: 42, roles: ['admin', 'moderator', 'user']});
var user2 = new User({name: 'modulus user', age: 22, roles: ['user']});

user1.save(console.log);
user2.save(console.log);


  1. Datums zoeken en tijd negeren in mongoDB

  2. Is het mogelijk om cast-gegevens in een aggregatiepijplijn op MongoDB te typen?

  3. Een sleutel/waarde verwijderen uit bestaande MongoDB-invoer

  4. Docker mongo-gegevensvolume instellen