sql >> Databáze >  >> NoSQL >> MongoDB

Umožňuje mongoose více databázových požadavků současně?

Používá pouze jedno připojení, pokud použijete výchozí metodu, ve které provádíte mongoose.connect(). Chcete-li to obejít, můžete vytvořit více připojení a pak s tímto připojením spojit model ukazující na stejné schéma.

Asi takhle:

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

Doufám, že to pomůže.

Aktualizovat Hej, to funguje. Aktualizací z komentářů můžete vytvořit fond připojení pomocí createConnection. Umožňuje provádět více dotazů ze stejného modelu současně:

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

Aktualizace 2. – prosinec 2012
Tato odpověď může být nyní mírně zastaralá – všiml jsem si, že stále dostávám kladné hlasy, tak jsem si řekl, že ji aktualizuji. Ovladač mongodb-native, který mongoose zabaluje, má nyní výchozí velikost fondu připojení 5, takže ji pravděpodobně nemusíte v mongoose explicitně specifikovat.




  1. Měli byste povolit žurnálování MongoDB?

  2. Object.keys, jak získat seznam klíčů v mongodb

  3. Jak používat neuspořádané hromadné vkládání s Mongoskin?

  4. Mongoose agregátní vyhledávání - Jak filtrovat podle konkrétního ID