如何使用带有mongoose查询的Promise.all作为参数

时间:2016-08-15 12:55:19

标签: mongoose promise ecmascript-6

我希望通过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();
}

不幸的是他们总是归零。现在我无法找出问题所在,所以需要你的帮助。请教我。

0 个答案:

没有答案