sql >> Database teknologi >  >> NoSQL >> MongoDB

Er det nødvendigt at åbne MongoDB-forbindelse, hver gang jeg vil arbejde med DB?

Jeg vil fraråde at opretholde én forbindelse, hvis du ønsker nogen form for skalerbarhed.

Der er en række muligheder for forbindelsespooling osv., men de fleste mennesker, der bruger noget tid overhovedet med Node og MongoDB, ender med at flytte til Mongoose på et tidspunkt.

Ud over at tilføje et godt skemalag tilbyder det forbindelsesabstraktion, så du som standard kan bruge en delt forbindelse ved at kalde mongoose.connect() , eller du kan oprette flere forbindelser eller deltage i forbindelsespooling ved at kalde mongoose.createConnection() . I begge tilfælde kalder du det uden tilbagekald, og mongoose-maskineriet vil udsætte efterfølgende opkald til modulet, indtil forbindelsen er etableret, så din kode er ligeglad.

Noget som dit use case kan se sådan ud:

// 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

Derefter i ./models/user.js

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

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

til sidst, lad os sige en startfunktion til at oprette din første gruppe af brugere:

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. MongoDB hvordan man kontrollerer eksistensen

  2. $nin med $expr

  3. Hvordan fungerer ServiceStack PooledRedisClientManager failover?

  4. Hvordan udfører jeg en forespørgsel i Mongoose?