MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose autorise-t-il plusieurs requêtes de base de données simultanément ?

Il n'utilise qu'une seule connexion, si vous utilisez la méthode par défaut où vous faites mongoose.connect(). Pour contourner ce problème, vous pouvez créer plusieurs connexions, puis lier un modèle pointant vers le même schéma à cette connexion.

Comme ceci :

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

J'espère que ça aide.

Mettre à jour Hé, ça marche. En mettant à jour les commentaires, vous pouvez créer un pool de connexions à l'aide de createConnection. Il vous permet d'effectuer simultanément plusieurs requêtes à partir du même modèle :

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

Mise à jour 2 - décembre 2012
Cette réponse est peut-être légèrement obsolète maintenant - j'ai remarqué que je continuais à recevoir des votes positifs, alors j'ai pensé la mettre à jour. Le pilote mongodb-native que mongoose enveloppe a maintenant une taille de pool de connexion par défaut de 5, vous n'avez donc probablement pas besoin de le spécifier explicitement dans mongoose.