2016-03-18 10 views
0

私のパブリッシュメソッドでは、2回ジョインをする必要があります。これまでのやり方では、「エラー:パブリッシュ関数が非カーソルの配列を返しました」という例外がスローされます。それは反応的ではありません!Meteor、公開double join react

私は非常にパフォーマンスが重視されているため、3回のトリップをやり直してクライアントとサーバー間を強制したくない場合もあります。また、一部のパッケージは配列内のすべてのアイテム!!

Meteor.publish('post', function(id) { 
    Posts.incView(id); 
    parentPost= Posts.findOne({_id: id}); 
     console.log(parentPost); 

    eachPost= Posts.find({_id: {$in : parentPost.childs }}); 
    users=[parentPost.createdBy]; 
    eachPost.forEach(function(each) { users.push(each.users)}); 
    return [ 
     parentPost, 
     eachPost, 
     UInfo.find({_id:{$in:users}}) 
    ]; 
}); 

答えて

1

findOne()は、カーソルではなくオブジェクトを返します。そのため、エラーが発生しています。 findOneコードを次のように変更します。

parentPost = Posts.find({_id: id}); 

この方法で3つのカーソルを返します。

+0

「コレクションの投稿用に複数のカーソルを返す関数を公開する」となっていますが、同じコレクションの複数のカーソルを送信できません。 – koolaang

+0

パブリッシュ関数から同じコレクションに対して複数のカーソルを戻すことはできません。 –

+0

ああ、コレクションの名前に注意を払っていない、私の間違い。 –

関連する問題