MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

O mangusto permite várias solicitações de banco de dados simultaneamente?


Ele usa apenas uma conexão, se você usar o método padrão onde você faz mongoose.connect(). Para contornar isso, você pode criar várias conexões e, em seguida, vincular um modelo apontando para o mesmo esquema a essa conexão.

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

Espero que ajude.

Atualizar Ei, isso funciona. Atualizando a partir dos comentários, você pode criar um pool de conexões usando createConnection. Ele permite que você faça várias consultas do mesmo modelo simultaneamente:
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");
});

Atualização 2 -- dezembro de 2012
Esta resposta pode estar um pouco desatualizada agora - notei que continuo recebendo votos positivos, então pensei em atualizá-la. O driver nativo do mongodb que o mongoose encapsula agora tem um tamanho de pool de conexão padrão de 5, então você provavelmente não precisa especificá-lo explicitamente no mongoose.