总不是一个函数 - 的MongoDB /流星
我有这个集合(Spieltag
)有两个文件在MongoDB中:带有 “where子句” 上SpielerID总不是一个函数 - 的MongoDB /流星
0: Object Note:2.5 SaisonID:201516 SpielerID:105 SpieltagID:1 Tore:1 _id:"vkD5sMCdZdntoCFGP" 1: Object Note:3 SaisonsID:201516 SpielerID:105 SpieltagID:1 Tore:0 _id:"PrqokMS47K4vx4KR4"
我想总结Note
(2.5 + 1) 。
这是我曾尝试使用:
Spieltag.aggregate({ $match: {
{ SpielerID: { $gte: 105 } }
} },
{ $group: { _id : null, sum : { $sum: "$Note" } } });
但它不工作,投掷Aggregate is not a function
。任何想法有什么不对?
首先,你需要添加的总包流星:
meteor add meteorhacks:aggregate
其次,你必须在总传递一个数组参数,如:
Spieltag.aggregate([{
$match: {
SpielerID: { $gte: 105 },
},
}, {
$group: {
_id: null,
sum: { $sum: '$Note' },
},
}]);
我做了一个更新... meteorhacks:聚合添加,版本1.3.0 meteorhacks:收集-utils的添加,版本1.2.0 已添加mongo-livedataata,版本1.0.9 然后我将上面的聚合函数插入到chrome中的java脚本控制台中。但我得到同样的错误。 我必须在我的应用程序中插入一个声明,这将工作吗? – HansMuff
对不起,正如https://github.com/meteorhacks/meteor-aggregate中提到的,聚合只能在服务器端工作。 要在客户端上使用它,您可以从服务器发布聚合函数的结果并在客户端中订阅它。 –
当我说我必须在服务器端构建聚合函数时,我该怎么办? 在我的JS文件我有以下结构... 如果(Meteor.isClient){ ... } 如果(Meteor.isServer){ ... } 同时在此刻服务器只有Meteor.startup(function(){ });而其他任何东西都在isClient“区域” – HansMuff
的可能的复制[如何使用聚合函数在流星](http://stackoverflow.com/questions/28425316/how-to-use-aggregate-function-in-meteor) –