2017-02-17 5 views
1

私はMongoDBの中に二つの文書で、このコレクション(Spieltag)を持っている:集計は関数ではありません - 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" 

私はSpielerIDの "where句" とNote(2.5 + 1)を集計します。

これは、私が使用しようとしたものである:

Spieltag.aggregate({ $match: { 
     { SpielerID: { $gte: 105 } } 
} }, 
{ $group: { _id : null, sum : { $sum: "$Note" } } }); 

しかし、それはAggregate is not a functionを投げ、動作しません。どのようなアイデアが間違っている?

+1

可能性のある重複した[集計関数を使用する方法流星で](http://stackoverflow.com/questions/28425316/how-to-use-aggregate-function-in-meteor) –

答えて

1

まず、あなたは流星の集約パッケージを追加する必要があります。

meteor add meteorhacks:aggregate 

第二には、あなたのような集計に配列パラメータを渡す必要がありますの

Spieltag.aggregate([{ 
    $match: { 
    SpielerID: { $gte: 105 }, 
    }, 
}, { 
    $group: { 
    _id: null, 
    sum: { $sum: '$Note' }, 
    }, 
}]); 
+0

私は更新をしました... meteorhacks:集計を追加、バージョン1.3.0 meteorhacks:collection-utilsバージョン1.2.0 mongo-livedataが追加されました。バージョン1.0.9 そして、私は上記の集約関数をchromeのjavaスクリプトコンソールに挿入します。しかし、私は同じエラーが発生します。 これは機能するアプリケーションに私のステートメントを挿入する必要がありますか? – HansMuff

+0

申し訳ありませんが、https://github.com/meteorhacks/meteor-aggregateに記載されているように、集約はサーバー側でのみ機能します。 クライアントで使用するには、サーバーから集約関数の結果をパブリッシュし、クライアントでサブスクライブすることができます。 –

+0

サーバー側で集約関数を構築する必要があると私は何をしなければなりませんか?で現時点での私のjsファイルで (Meteor.isClient)場合、私は次のような構造... を持っている{ ... } (Meteor.isServer)の場合{ ... } サーバーはMeteor.startup(function(){ })のみです。その他のものはisClientの「エリア」にあります。 – HansMuff

関連する問題