猫鼬聚合函数结果

时间:2020-12-31 10:43:36

标签: node.js mongoose aggregate

我在节点中具有控制器功能并具有检索平均汇率的功能

exports.getRecipe = async (req, res) => {

    try{
        let id = req.params.id;
        await Recipe.findOne({_id: id})
            .populate('user')
            .exec(function (err, rec) {
                if (err) return handleError(err);
                //let rateAverage = getRateAverage(rec._id);
                //console.log(rateAverage)
                res.json(rec);
            });
       
           
    } catch(err)
    {
        return res.status(500).json({error: err.message})
    }
}
const getRateAverage = (recipe_id) => {

    try{
        console.log(recipe_id)
        Rate.aggregate([
            { $match: { recipe: mongoose.Types.ObjectId(recipe_id) } },
            { $group: {
                _id: '$recipe',
                avgRate: { $avg: '$rate'}
            }}
        ], function (err, results) {
            if (err) {
                console.error(err);
            } else {
               return results[0].avgRate;
            }
        });
    } catch(err)
    {
        console.log(err);
    }
}

我无法从 exec 回调中获得平均总和(甚至可能吗?)我该怎么办?我的 getRateAverage 函数中有正确的回调函数结果,但我无法摆脱函数

0 个答案:

没有答案