将项添加到游标MeteorJS

时间:2015-03-05 09:02:35

标签: mongodb meteor

这是我现在的代码:

Template.home.helpers({
    categories: function(){
         // Categories is a collection defined earlier
         return Categories.find();
    },
});
        var categories = Categories.find();
        /**
        categories.append({
            name: "All",
            icon: "home"
        });
        */
        return categories;
    },

它只是返回我正在使用的数据库中的所有类别。我想制作一个聚合类别。例如,看到我有两个类别:

[
{
  name: "Link",
  views: 5
},
{
  name: "Time",
  views: 10,
}]

说我想要第三类:

{
  name: "All",
  views: 15 // this is from 10 + 5
}

我如何将其添加到光标?

1 个答案:

答案 0 :(得分:1)

助手也可以返回数组(或单个值),而不是返回游标。因此,您可以通过将所有现有类别提取到数组中,使用所需数据进行修改并返回修改后的数组来解决您的问题。以下是一个示例实现:

Template.home.helpers({
  categories: function() {
    // fetch all of the categories into an array
    var cats = Categories.find().fetch();

    // compute the total views for all categories
    var totalViews = _.reduce(cats, function(memo, cat) {
      return memo + cat.views;
    }, 0);

    // add a new 'category' with the total views
    cats.push({name: 'All', views: totalViews});

    // return the array of modified categories
    return cats;
  }
});