我在Localhost中运行Meteor
我有一个名为Transactions的集合,其中包含用户,金额,日期和描述等字段
我想获得特定用户的“金额”字段的总和。我应该采取哪些步骤?
答案 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)从客户端调用方法