Meteor MongoDB,尝试将字段的SUM添加到客户端

时间:2014-12-17 03:56:37

标签: mongodb meteor sum field

我在Localhost中运行Meteor

我有一个名为Transactions的集合,其中包含用户,金额,日期和描述等字段

我想获得特定用户的“金额”字段的总和。我应该采取哪些步骤?

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

// on server

Meteor.methods({
  userSum: function() {
    var userTransactions = Transactions.find({ userId: this.userId }).fetch();

    return _.reduce(userTransactions, function(sum, next) {
      return sum + next.amount;
    }, 0);
  }
});

// on client, assuming a user is logged in

Meteor.call('userSum', function(mySum) {
  console.log(mySum);
});

答案 1 :(得分:0)

更多信息会有所帮助,但根据我的理解,解决方案是,

如果您想在客户端执行此操作

1)首先订阅所有用户(在客户端)

  Meteor.subscribe("userTransactions");

发布功能看起来像

 in server side code


Meteor.publish("userTransactions,function(){
  return Transactions.find({user:this.userId}); 
});

// this.userId返回请求此发布函数null的用户的ID(如果没有人登录)

2)在客户帮助者

Template.myTemplate.helpers({
  'sum':function(){
     var sum=0;
     var cursor=Transactions.find({user:Meteor.userId()});
     cursor.forEach(function(transaction){
       sum = sum + transaction.amount
     });
     return sum;
   }
})

如果您想在服务器中执行此操作

1)在服务器端创建一个方法,使用相同的代码返回总和

2)从客户端调用方法