Join queries in meteor angular using publish composite

228 views Asked by At

I have two Collections Category and Feeds.

Category

{
   "_id": "ADFGFDF",
   "title" : "title",
}

Feeds

{
   "_id": "DFSAHT",
   "feeds" : "ds sdsd sds",
   "categoryId" : "catId"
}

I need to get the result like this:

{
   "_id": "ADFGFDF",
   "title" : "title",
   "categoryId" : "DFSAHT"
   "category" : {
     "_id": "DFSAHT",
     "feeds" : "ds sdsd sds",
    }
}

I tried using publish-composite and here it's my code.

Server

Meteor.publishComposite('feedscateg', function () {

return {
  find: function () {
    return Category.find({});
  },
  children: [
    {
      find: function (cat) {
        return Feeds.find({ categoryID: cat._id });
      }
    }

  ]
}
});

In client Angular i tried this:

$scope.feeds = $meteor.collection(Category).subscribe('feedscateg');

And I am confused with the view part also.

1

There are 1 answers

0
Deadly On BEST ANSWER

publishComposite do not modify collection data, it will load Feeds and Category separately. If you want to get category of feed item just select it from client db.

$scope.getFeedCategory = function (feedItem) {
    Category.findOne({'_id': feedItem.categoryId});
};