sql >> Databáze >  >> NoSQL >> MongoDB

Je nutné otevřít připojení MongoDB pokaždé, když chci pracovat s DB?

Nedoporučoval bych udržovat jedno připojení, pokud chcete jakoukoli škálovatelnost.

Existuje řada možností pro sdružování připojení atd., ale většina lidí, kteří tráví jakýkoli čas s Node a MongoDB, se v určitém okamžiku přesunou do Mongoose.

Kromě přidání pěkné vrstvy schématu nabízí abstrakci připojení, takže můžete jako výchozí použít sdílené připojení voláním mongoose.connect() , nebo můžete vytvořit více připojení nebo se zúčastnit sdružování připojení voláním mongoose.createConnection() . V obou případech to zavoláte bez zpětného volání a mašinérie mongoose odloží následující volání modulu, dokud nebude spojení navázáno, takže váš kód to nemusí zajímat.

Něco jako váš případ použití může vypadat takto:

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

Poté v souboru ./models/user.js

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

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

konečně, řekněme, seed funkce pro vytvoření vaší počáteční dávky uživatelů:

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. Návrh tabulky MongoDB a výkon dotazů

  2. Upsert více záznamů pomocí MongoDb

  3. Jak agregovat na obrovském poli v mongoDB?

  4. Jak mohu v laravelu počítat současnost po měsíci?