2017-06-12 4 views
0

私は質問がここで以前に尋ねられたことを知っていますが、まだ私は誰かが私を助けることを願っています。私はmeteorchefの基本テンプレートを使って作業します。私が持っているサーバー/出版物でパブリッシュは非カーソルの配列を返します

const composer = (params, onData) => { 
    const subscription = Meteor.subscribe('teams.scores'); 
    if (subscription.ready()) { 
    const teams = Teams.find().fetch(); 
    onData(null, { teams }); 
    } 
}; 
export default composeWithTracker(composer, Loading)(ScoreTotal); 

::私は、UI /コンテナディレクトリ内ScoreTotal.jsから

Meteor.publish('teams.scores', (_id) => { 
    var pipeline = [ 
     {$project: 
      { _id: 0, 
      teamname: 1, 
      score1: 1, 
      score2: 1, 
      scoretotal: { $add: [ "$score1", "$score2" ] }, 
     }} 
    ]; 

    var result = Teams.aggregate(pipeline, {_id}); 
    return result; 
    }); 

私は私が見る結果をCONSOLE.LOG集計が機能しますが、「パブリッシュ関数が非カーソルの配列を返しました」というエラーが表示される

ヘルプを評価してください!

答えて

1

代わりにメソッドを使用したい場合があります。

Meteor.methods({ 
    'teams.scores': function(_id) { 
    var pipeline = [ 
     { 
     $project: 
     { _id: 0, 
      teamname: 1, 
      score1: 1, 
      score2: 1, 
      scoretotal: { $add: [ "$score1", "$score2" ] }, 
     } 
     } 
    ] 
    var result = Teams.aggregate(pipeline, {_id}) 
    return result 
    } 
}) 

// on client 
Meteor.call('teams.scores', function(error, result) { 
    // use result to update dom, etc. 
}) 
+0

ありがとう。私は別の方法で行って、https://github.com/JcBernack/meteor-reactive-aggregateパッケージで動作させました。 – Cas

関連する問題