MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Erlaubt Mongoose mehrere Datenbankanfragen gleichzeitig?

Es wird nur eine Verbindung verwendet, wenn Sie die Standardmethode verwenden, bei der Sie mongoose.connect() ausführen. Um dies zu umgehen, können Sie mehrere Verbindungen erstellen und dann ein Modell, das auf dasselbe Schema verweist, mit dieser Verbindung verknüpfen.

So:

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

Hoffe das hilft.

Aktualisieren He, das geht. Ausgehend von den Kommentaren können Sie mit createConnection einen Verbindungspool erstellen. Damit können Sie mehrere Abfragen aus demselben Modell gleichzeitig ausführen:

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

Aktualisierung 2 – Dezember 2012
Diese Antwort ist jetzt möglicherweise etwas veraltet. Mir ist aufgefallen, dass ich weiterhin Upvotes bekomme, also dachte ich, ich würde sie aktualisieren. Der mongodb-native Treiber, den Mongoose umschließt, hat jetzt eine standardmäßige Verbindungspoolgröße von 5, sodass Sie ihn wahrscheinlich nicht explizit in Mongoose angeben müssen.