【问题标题】:Mongoose multi connections same DB with HapijsMongoose 使用 Hapijs 多连接相同的数据库
【发布时间】:2019-02-19 00:46:52
【问题描述】:

我正在使用Hapijsmongoose,问题是一些URLmongoose 非常密集。 A, B, C 是 3 种不同的模式。此查询可能需要一些时间,具体取决于 array 的大小。问题是当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));
      });

【问题讨论】:

    标签: node.js mongoose hapijs


    【解决方案1】:

    解决了索引和 .lean() 的问题。其中一个查询是具有多个字段和基于文本的查找。我做了一些索引,速度提高了很多(加上使用 .lean() )。

    【讨论】:

      猜你喜欢
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 2020-12-28
      • 2018-02-09
      • 2015-01-06
      • 2014-07-18
      相关资源
      最近更新 更多