2016-01-24 97 views
2

我很努力根據第一個mongo查詢中的數據字段將發佈返回給特定的作者。如何根據第一個數據發佈第二個集合

在下面的帖子訂閱工作絕對好,但作者訂閱永遠不會返回任何東西。我假設它與異步代碼有關。

Meteor.publish("postAndAuthor", function (postId) { 
    check(postId, String) 
    var post = Posts.find({_id: postId}); 
    var authorId = post.authorId; 

    return [ 
    book, 
    Authors.find({_id: authorId}) 
    ]; 

}); 
+1

'find'函數返回一個遊標,而不是數組或對象。改變你的'Posts'查詢使用'findOne'。 –

回答

1

找到了答案: 布賴恩指出的評論,我治療後變量的對象不是一個遊標。出版物需要遊標,但這樣獲得的AuthorID的最佳方式返回使用

var authorId = post.fetch()[0].authorId; 
0

當發佈一個訂閱,您應該返回一個指針。試試這個:

Meteor.publish("postAndAuthor", function (postId) { 
    check(postId, String) 
    var post = Posts.find({_id: postId}); 
    var authorId = post.authorId; 

    return Authors.find({_id: authorId}): 
}); 
相關問題