MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose позволява ли едновременно множество заявки за база данни?

Той използва само една връзка, ако използвате метода по подразбиране, където правите mongoose.connect(). За да избегнете това, можете да създадете множество връзки и след това да свържете модел, сочещ към същата схема, към тази връзка.

Ето така:

var conn = mongoose.createConnection('mongodb://localhost/test');
var conn2 = mongoose.createConnection('mongodb://localhost/test');
var model1 = conn.model('Model', Schema);
var model2 = conn2.model('Model', Schema);
model1.find({long query}, function() {
   console.log("this will print out last");
});
model2.find({short query}, function() {
   console.log("this will print out first");
});

Надявам се, че това помага.

Актуализация Хей, това работи. Като актуализирате от коментарите, можете да създадете пул за връзки с помощта на createConnection. Позволява ви да правите множество заявки от един и същ модел едновременно:

var conn = mongoose.createConnection('mongodb://localhost/test', {server:{poolSize:2}});
var model = conn.model('Model', Schema);
model.find({long query}, function() {
   console.log("this will print out last");
});
model.find({short query}, function() {
   console.log("this will print out first");
});

Актуализация 2 – декември 2012 г.
Този отговор може да е малко остарял сега – забелязах, че продължавам да получавам гласове „за“, така че реших да го актуализирам. Родният драйвер за mongodb, който mongoose обгръща, сега има размер на пула за връзки по подразбиране 5, така че вероятно не е необходимо да го указвате изрично в mongoose.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Драйвер на Promise и nodejs MongoDB

  2. Върнете определени полета с .populate() от Mongoose

  3. MongoDB $slice (страниране на вграден масив)

  4. mongoengine - Заявка към ListField на EmbeddedDocumentField

  5. Използване на MongoDB като източник на данни в GoLang