MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

É necessário abrir a conexão MongoDB toda vez que eu quiser trabalhar com o banco de dados?


Eu não recomendaria manter uma conexão se você quiser qualquer tipo de escalabilidade.

Existem várias opções para pool de conexões, etc, mas a maioria das pessoas que passam algum tempo com Node e MongoDB acaba se mudando para o Mongoose em algum momento.

Além de adicionar uma boa camada de esquema, ele oferece abstração de conexão para que você possa usar como padrão uma conexão compartilhada chamando mongoose.connect() , ou você pode criar várias conexões ou participar do pool de conexões chamando mongoose.createConnection() . Em ambos os casos, você o chama sem um retorno de chamada, e o maquinário mangusto adiará as chamadas subsequentes para o módulo até que a conexão seja estabelecida, para que seu código não precise se preocupar.

Algo como o seu caso de uso pode ser assim:
// 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

Em seguida, em ./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, uma função seed para criar seu lote inicial de usuários:
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);