流星js - 模板:多个集合

时间:2015-08-11 14:50:50

标签: javascript mongodb meteor collections

我有两个系列:

  • 帖子:{_ id:" 123",text:" some text",user_id:" 456"}
  • 书签:{_ id:" 456",post_id:" 123",user_id:" 425" }

在Bookmarks集合中,post_id是来自书签帖子的_id。

我使用以下模板助手显示特定用户的所有帖子:

Template.profile.helpers({
    posts: function () {

// get current router parameter id (iron router)
   context = Router.current().params._id;

   return Posts.find({user_id: context},   {sort: {timestamp: -1} } );
}
});

现在,我想显示用户在模板中添加书签的所有帖子:userBookmarks。是否可以使用模板助手实现此目的? 或者仅使用包或Mongo.Collection转换选项?

2 个答案:

答案 0 :(得分:2)

HTML:

<template name="userBookmarks">
  {{#each myBookmarks}}
    {{#with post}}
      {{text}}
    {{/with}}
  {{/each}}
</template>

JS:

Template.userBookmarks.helpers({
  myBookmarks: function(){
    return Bookmarks.find({user_id: Meteor.userId()});
  },
  post: function(){
    return Posts.findOne({_id: this.post_id});
  }
});

答案 1 :(得分:0)

如果您需要一个助手版本:

Template.userBookmarks.helpers({
  'posts': function () {
    return Posts.find({
      _id: {
        $in: Bookmarks.find({user_id: Meteor.userId()}).map(function (bookmark) {
          return bookmark.post_id;
        })
      }
    });
  }
});