MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Est-il nécessaire d'ouvrir la connexion MongoDB chaque fois que je veux travailler avec la base de données ?

Je déconseille de maintenir une connexion si vous souhaitez une évolutivité quelconque.

Il existe un certain nombre d'options pour le regroupement de connexions, etc., mais la plupart des gens qui passent du temps avec Node et MongoDB finissent par passer à Mongoose à un moment donné.

En plus d'ajouter une belle couche de schéma, il offre une abstraction de connexion afin que vous puissiez utiliser par défaut une connexion partagée en appelant mongoose.connect() , ou vous pouvez créer plusieurs connexions ou participer au regroupement de connexions en appelant mongoose.createConnection() . Dans les deux cas, vous l'appelez sans rappel, et la machinerie mangouste différera les appels ultérieurs au module jusqu'à ce que la connexion soit établie, de sorte que votre code n'a pas à s'en soucier.

Quelque chose comme votre cas d'utilisation pourrait ressembler à ceci :

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

Puis dans ./models/user.js

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

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

enfin, disons une fonction de départ pour créer votre lot initial d'utilisateurs :

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