按照Meteor中的升序排序

时间:2015-01-31 00:23:36

标签: mongodb meteor

在Meteor中使用地图功能后,我无法确定排序需要居住的位置。我希望能够获得返回的结果并按升序显示它们。 Meteor API文档对排序说明符有点了解。

Template.foodList.helpers({
  foodCounts: function() {
    return _.map(_.countBy(Foods.find().fetch(), 'text'), function(value, key){
      return {text: key, count: value};
    });
   }
});

2 个答案:

答案 0 :(得分:1)

_.countBy操纵数据的顺序时,您希望在此之后进行排序。可能最好在_.map之后进行排序。

Template.foodList.helpers({
  foodCounts: function() {
    var data = _.map(_.countBy(Foods.find().fetch(), 'text'), function(value, key){
          return {text: key, count: value};
    });
    // sort by `text` field
    return _.sortBy(data, function(datum){ 
           return datum.text.toLowerCase(); 
    });
  }
});

OR

Template.foodList.helpers({
  foodCounts: function() {
    var data = _.map(_.countBy(Foods.find().fetch(), 'text'), function(value, key){
          return {text: key, count: value};
    });
    // sort by count
    return _.sortBy(data, function(datum){ 
           return datum.count; 
    });
  }
});

答案 1 :(得分:1)

这是一个简短但使用下划线和链接的解决方案:

Template.foodList.helpers({
  foodCounts: function() {
    return _.chain(Foods.find().fetch())
      .countBy('text')
      .map(function(v, k) {return {text: k, count: v};})
      .sortBy('count')
      .value();
  }
});