Mongoose 多连接与 Hapijs 相同的数据库

Mongoose multi connections same DB with Hapijs

我正在与 Hapijsmongoose 合作,问题是一些 URL 确实需要 mongooseA, 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));
      });

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