2017-11-29 12 views
0

私は以下の問題があります。マングースマルチコネクションHapijsと同じDB

私はHapijsmongooseで働いている、問題はいくつかのURLmongooseと本当に集中的であるということです。 A, B, Cは3つの異なるスキーマです。このクエリは、arrayサイズに応じて、時間がかかることがあります。問題は、mongooseがこのリクエストを処理していて、別のリクエストを処理できない場合です。たとえば、ある人がインポートを行っている場合、誰もログインすることができず、システムにこれまでどおりにログインすることはできません。

私はmongoose poolSizeのオプションを試しましたが、動作しません。

ideasどうすればこの問題を解決できますか?

buildArticle: function(articles, req, res) { 
    let bulkUpdateOps = articles.map(function(article) { 
     return A.findOneAndUpdate(
      query 
     ) 
     .then(function() { 
      return B.findOneAndUpdate(
      query 
     ); 
     }) 
     .then(function(resultado) { 
      some stuff 
     }) 
     .then(function(resultado) { 
      return { 
      updateOne: { 
       filter: { 
       query 
       }, 
       update: { 
       data 
       }, 
       upsert: true 
      } 
      }; 
     }) 
     .catch(function(err) { 
      console.log(err); 
      return res(Boom.badImplementation("Error: ", err)); 
     }); 
    }); 

    Promise.all(bulkUpdateOps) 
     .then(function(ops) { 
     return C.bulkWrite(ops, { 
      ordered: true, 
      w: 1 
     }); 
     }) 
     .then(_ => { 
     return res("Imported"); 
     }) 
     .catch(function(err) { 
     console.log(err); 
     return res(Boom.badImplementation("Error: ", err)); 
     }); 

答えて

0

インデックスと.lean()の問題を解決しました。クエリの1つは、複数のフィールドとテキストベースの検索でした。私はいくつかの指標を作って、スピードを大幅に向上させました(さらに.lean()の使用)。

関連する問題