Mongoose 多连接与 Hapijs 相同的数据库
Mongoose multi connections same DB with Hapijs
我正在与 Hapijs
和 mongoose
合作,问题是一些 URL
确实需要 mongoose
。
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));
});
解决了索引和 .lean() 的问题。其中一个查询是基于多个字段和文本的查找。我做了一些索引,速度提高了很多(加上使用 .lean() )。
我正在与 Hapijs
和 mongoose
合作,问题是一些 URL
确实需要 mongoose
。
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));
});
解决了索引和 .lean() 的问题。其中一个查询是基于多个字段和文本的查找。我做了一些索引,速度提高了很多(加上使用 .lean() )。