我希望通过Promise.all()
函数将2个mongoose查询作为Promise对象运行。
如果成功完成了2个查询,我想返回结果并在下一个then()
函数中使用它们。
mongoose query 1:
const _getColRank = (colPoint) => {
return User.$where('this.email !== "admin@admin"').count({ colPoint: { $gt: colPoint } }).exec();
};
mongoose query 2:
const _getBattleRank = (battlePoint) => {
return User.$where('this.email !== "admin@admin"').count({ battlePoint: { $gt: battlePoint } }).exec();
};
Promise.all():
Promise.all([_getColRank(user.colPoint), _getBattleRank(user.battlePoint)])
.then(ranks => {
User.findByIdAndUpdate(_id, { colRank: ranks[0], battleRank: ranks[1] }, { upsert: true }).exec();
}
不幸的是他们总是归零。现在我无法找出问题所在,所以需要你的帮助。请教我。