Używa tylko jednego połączenia, jeśli używasz domyślnej metody, w której wykonujesz mongoose.connect(). Aby obejść ten problem, możesz utworzyć wiele połączeń, a następnie powiązać model wskazujący ten sam schemat z tym połączeniem.
Tak:
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");
});
Mam nadzieję, że to pomoże.
Aktualizacja Hej, to działa. Aktualizując komentarze, możesz utworzyć pulę połączeń za pomocą createConnection. Umożliwia jednoczesne wykonywanie wielu zapytań z tego samego modelu:
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");
});
Aktualizacja 2 – grudzień 2012
Ta odpowiedź może być teraz nieco nieaktualna – zauważyłem, że wciąż otrzymuję głosy za, więc pomyślałem, że ją zaktualizuję. Sterownik mongodb-native, który opakowuje mongoose, ma teraz domyślny rozmiar puli połączeń równy 5, więc prawdopodobnie nie musisz go wyraźnie określać w mongoose.