sql >> データベース >  >> NoSQL >> MongoDB

マングースは複数のデータベースリクエストを同時に許可しますか?

    mongoose.connect()を実行するデフォルトのメソッドを使用する場合、1つの接続のみを使用します。これを回避するには、複数の接続を作成してから、同じスキーマを指すモデルをその接続に結び付けることができます。

    そのように:

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

    お役に立てば幸いです。

    更新 ねえ、それは動作します。コメントから更新すると、createConnectionを使用して接続プールを作成できます。同じモデルから複数のクエリを同時に実行できます:

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

    更新2-2012年12月
    この回答は少し古くなっている可能性があります。私は賛成票を集め続けていることに気づいたので、更新すると思いました。 mongooseがラップするmongodbネイティブドライバーのデフォルトの接続プールサイズは5になっているため、mongooseで明示的に指定する必要はおそらくありません。




    1. 要素'id'は、ネストされたクラスのエラーのフィールドまたはプロパティと一致しません

    2. MongoDBスキーマ計画のヒント

    3. 複数のファセット、Unwind、sortByCountを使用したAggregation Framework C#でのファセットの使用

    4. MongoDBコレクション構造のパフォーマンス