流星通过数组订阅_id

Meteor subscription _id through array

我正在列一个清单。

用户将能够进行搜索,然后单击搜索到的项目以将相应的 ID 添加到他们的列表中。

下面是我写的代码

Template.searchedItem.events

'click .addToList': function (event, template) {
    event.preventDefault();

    // _id of the List
    var listId = Template.parentData(1)._id;
    console.log(listId);

    // _id of the searched item
    var companyId = this._id;
    console.log(companyId);

    Meteor.call('addToList', listId, companyId, function (error, result) {
     if (error) {

     } else {

     }
    });
  }

方法

Meteor.methods({
  addToList: function (listId, companyId) {
    check(listId, String);
    check(companyId, String);

    var add = Lists.update({
      _id: listId,
      companies: {$ne: companyId}
    }, {
      $addToSet: {companies: companyId},
      $inc: {companyCount: 1}
    });

    return add;
  }
});

列表对象

list = {
  _id: listId,
  name: nameOfList
  companies: [
    // _ids of added companies
    0: 'addedCompanyId',
    1: 'someOtherAddedCompanyId',
    and so forth...
  ]
}

从这里开始,我试图制作一个 sub/pub,它仅显示在 list.companies 中添加的公司。

我不知道如何..

我在想这样的事情。

<template name = "list">
  {{#each addedCompanies}}
    something here
  {{/each}}
</template>

Template.list.helpers({
  addedCompanies: function () {
   companies = this.companies;
   return Clients.find(/*something here*/);
  }
});

到目前为止,我编写的所有内容都有效。但是我迷失在 return 从 _id 数组中创建游标。

更新

简单地说,我可以return一个来自多个_ids的游标作为查询吗?

是的,您可以 return 从 ID 列表中选择游标。您甚至可以 return 任何有效查询的游标。

Meteor.publish('clientsFromCompanyIds', function(companyIds) {
  return Clients.find({companyId: {$in: companyIds}});
});

这就是你要找的吗?