流星游标计数和forEach

Meteor cursor counts and forEach

我需要将 minmax 字段添加到发布功能的集合项中,并按此字段过滤项目。我通过对光标使用 forEach 找到了解决方案:

Meteor.publish 'productsWithMinMax', (filter, options) ->
    Products.find(filter, options).forEach (p) =>
        p.min = Math.min p.price1, p.price2, p.price3, p.price4
        p.max = Math.max p.price1, p.price2, p.price3, p.price4

        if p.min && p.max && (p.max < p.mainPrice || p.min > p.mainPrice )
            @added "products", p._id, p

    Counts.publish @, 'numberOfProductsWithMinMax', Products.find(filter), {noReady: true}

    @ready()

但是现在 Counts.publish returns 我的光标计数错误。在这种情况下如何计算我的光标?

我找到的唯一解决方案是将 max/min 属性添加到集合模型。

P.S。如果有人推荐更好的就更好了。