2017-06-12 18 views
0

我知道這個問題之前在這裏問過,但我希望有人能幫助我。我使用meteorchef的基本模板。發佈返回一個非遊標數組

從ScoreTotal.js在UI /容器目錄我做的:

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); 

在服務器/出版物,我有:

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