如何使用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();
}