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

Mangusta consente più richieste di database contemporaneamente?

Utilizza solo una connessione, se si utilizza il metodo predefinito in cui si esegue mongoose.connect(). Per aggirare questo problema, puoi creare più connessioni e quindi collegare un modello che punta allo stesso schema a quella connessione.

Così:

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

Spero di esserti stato d'aiuto.

Aggiorna Ehi, funziona. Aggiornando dai commenti, puoi creare un pool di connessioni usando createConnection. Ti consente di eseguire più query dallo stesso modello contemporaneamente:

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

Aggiornamento 2 - dicembre 2012
Questa risposta potrebbe essere leggermente obsoleta ora:ho notato che continuavo a ricevere voti positivi, quindi ho pensato di aggiornarla. Il driver mongodb nativo che mongoose avvolge ora ha una dimensione del pool di connessioni predefinita di 5, quindi probabilmente non è necessario specificarlo esplicitamente in mongoose.