sql >> Databasteknik >  >> NoSQL >> MongoDB

Tillåter mongoose flera databasförfrågningar samtidigt?

Den använder bara en anslutning om du använder standardmetoden där du gör mongoose.connect(). För att komma runt detta kan du skapa flera anslutningar och sedan knyta en modell som pekar på samma schema till den anslutningen.

Som så:

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

Hoppas det hjälper.

Uppdatera Hej, det fungerar. Genom att uppdatera från kommentarerna kan du skapa en anslutningspool med createConnection. Det låter dig göra flera frågor från samma modell samtidigt:

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

Uppdatering 2 – dec 2012
Det här svaret kan vara något föråldrat nu - jag märkte att jag har fortsatt att få uppröster, så jag tänkte uppdatera det. Den mongodb-baserade drivrutinen som mongoose wraps har nu en standardstorlek för anslutningspool på 5, så du behöver förmodligen inte uttryckligen ange den i mongoose.




  1. Hur återansluter man mongo automatiskt i node.js-servern?

  2. Hur väljer man två tabellvärden (dokument) åt gången efter användar-id i mongoose?

  3. MongoDb PHP-drivrutinsinstallationsproblem på wamp

  4. Finns det ett enkelt sätt att exportera data från en meteor-app?