sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Es necesario abrir la conexión MongoDB cada vez que quiero trabajar con la base de datos?

Recomendaría no mantener una conexión si desea algún tipo de escalabilidad.

Hay una serie de opciones para la agrupación de conexiones, etc., pero la mayoría de las personas que pasan algún tiempo con Node y MongoDB terminan cambiándose a Mongoose en algún momento.

Además de agregar una buena capa de esquema, ofrece abstracción de conexión para que pueda establecer una conexión compartida por defecto llamando a mongoose.connect() , o puede crear varias conexiones o participar en la agrupación de conexiones llamando a mongoose.createConnection() . En ambos casos, lo llama sin una devolución de llamada, y la maquinaria mongoose aplazará las llamadas posteriores al módulo hasta que se establezca la conexión, para que su código no tenga que preocuparse.

Algo así como su caso de uso podría verse así:

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

Luego en ./models/user.js

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

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

finalmente, digamos una función semilla para crear su lote inicial de usuarios:

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