如何使用Promise.all和mongoose查询作为参数

如何使用Promise.all和mongoose查询作为参数,mongoose,promise,ecmascript-6,Mongoose,Promise,Ecmascript 6,我想通过Promise.all()函数将两个mongoose查询作为Promise对象运行 如果两个查询成功完成,我希望返回结果并在下面的函数中使用它们 猫鼬查询1: const _getColRank = (colPoint) => { return User.$where('this.email !== "admin@admin"').count({ colPoint: { $gt: colPoint } }).exec(); }; 猫鼬查询2: const _getBattle

我想通过
Promise.all()
函数将两个mongoose查询作为Promise对象运行

如果两个查询成功完成,我希望返回结果并在下面的函数中使用它们

猫鼬查询1:

const _getColRank = (colPoint) => {
  return User.$where('this.email !== "admin@admin"').count({ colPoint: { $gt: colPoint } }).exec();
};
猫鼬查询2:

const _getBattleRank = (battlePoint) => {
  return User.$where('this.email !== "admin@admin"').count({ battlePoint: { $gt: battlePoint } }).exec();
};
我保证,所有人:


不幸的是,它们总是返回零。现在我不知道问题出在哪里,所以需要你的帮助。请教我。

那么您的数据库中可能没有与查询匹配的数据。OMG..u r right。我必须更新为“等级[0]+1”和“等级[1]+1”。非常感谢!FWIW,
User.where({email:{$ne:'admin@admin“}})
将比使用
$where()
快得多。酷!谢谢你的小费!那么您的数据库中可能没有与query.OMG..u r right匹配的数据。我必须更新为“等级[0]+1”和“等级[1]+1”。非常感谢!FWIW,
User.where({email:{$ne:'admin@admin“}})
将比使用
$where()
快得多。酷!谢谢你的小费!
Promise.all([_getColRank(user.colPoint), _getBattleRank(user.battlePoint)])
.then(ranks => {
  User.findByIdAndUpdate(_id, { colRank: ranks[0], battleRank: ranks[1] }, { upsert: true }).exec();
}