sql >> Database teknologi >  >> NoSQL >> MongoDB

Tillader mongoose flere databaseanmodninger samtidigt?

Det bruger kun én forbindelse, hvis du bruger standardmetoden, hvor du gør mongoose.connect(). For at komme uden om dette kan du oprette flere forbindelser og derefter knytte en model, der peger på det samme skema, til den forbindelse.

Sådan:

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

Håber det hjælper.

Opdater Hej, det virker. Ved at opdatere fra kommentarerne kan du oprette en forbindelsespulje ved hjælp af createConnection. Det giver dig mulighed for at udføre flere forespørgsler fra den samme model 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");
});

Opdatering 2 – dec. 2012
Dette svar kan være lidt forældet nu - jeg har bemærket, at jeg er blevet ved med at få opstemmer, så jeg tænkte, at jeg ville opdatere det. Den mongodb-native driver, som mongoose wraps, har nu en standardforbindelsespuljestørrelse på 5, så du behøver sandsynligvis ikke udtrykkeligt at angive den i mongoose.




  1. Hent gemt billede fra mongodb ved hjælp af python

  2. Sådan opdateres Multiple Array-objekter i mongodb

  3. Laravel - Slet alle cache / redis nøgler, der indeholder en specifik streng

  4. mongodb anvender sortering på opslagsresultater