Meteor .流星中未定义的弹拨返回

Meteor .流星中未定义的弹拨返回,meteor,Meteor,尝试从一系列评论中提取一个评分列表,然后对它们进行平均,从而得出一个板块的综合平均评分。当我查看ratings变量的数据输出时,我只得到“undefined undefined” 如果这是一个超级新手的问题,很抱歉,但我已经问了好几个小时了,还没弄明白。我解决了这个问题。如上所述,var reviews设置为一个光标,显然。pulk不起作用。通过首先将光标转换为一组对象,我就可以使用.pulk。更新后的代码如下所示: averageRating: function() { var rev

尝试从一系列评论中提取一个评分列表,然后对它们进行平均,从而得出一个板块的综合平均评分。当我查看ratings变量的数据输出时,我只得到“undefined undefined”


如果这是一个超级新手的问题,很抱歉,但我已经问了好几个小时了,还没弄明白。

我解决了这个问题。如上所述,
var reviews
设置为一个光标,显然。pulk不起作用。通过首先将光标转换为一组对象,我就可以使用.pulk。更新后的代码如下所示:

averageRating: function() {
    var reviewsCursor = Reviews.find({plateId: this._id});
    //Converts cursor to an array of objects
    var reviews = reviewsCursor.fetch();
    var ratings = _.pluck(reviews, 'rating');
    var sum = ratings.reduce(function(pv, cv){return pv + cv;}, 0);
    var avg = (sum / ratings.length).toPrecision(2);

    return avg;

}

每次计算后都要记录
console.log
,以查看是否正在计算数据。问题不在于计算部分。在我做任何数学运算之前,我已经“未定义”。在上面的代码中,我暂时绕过了数学部分,只是输出了从.pulk收到的内容,即“undefined-undefined(etc)”。您的查询最多只返回一个文档。文档是什么样子的?在调用
pluck()
之前,您会得到什么?
averageRating: function() {
    var reviewsCursor = Reviews.find({plateId: this._id});
    //Converts cursor to an array of objects
    var reviews = reviewsCursor.fetch();
    var ratings = _.pluck(reviews, 'rating');
    var sum = ratings.reduce(function(pv, cv){return pv + cv;}, 0);
    var avg = (sum / ratings.length).toPrecision(2);

    return avg;

}