【问题标题】:Filter data already filtered through subscription in Meteor在 Meteor 中过滤已通过订阅过滤的数据
【发布时间】:2015-08-25 12:22:55
【问题描述】:

如果我有订阅

Meteor.publish('itemsByProjectId', function (projectId) {
  check(projectId, String);
  return Items.find({ projectId: projectId});
});

那么我只订阅与项目相关的项目。

在输出模板中的项目时我是否还必须使用Items.find({ projectId: projectId }) 还是使用Items.find() 就足够了,因为集合已经通过订阅过滤了。

在这种情况下,最佳做法是什么?我认为不需要再次过滤数据。

【问题讨论】:

    标签: javascript node.js meteor publish-subscribe


    【解决方案1】:

    这取决于您是否将任何其他文档从 Items 集合发送到客户端。如果您使用 subs manager 将过去的 sub 缓存到 items 集合或正在使用 Items 集合的另一个订阅,那么您希望在模板帮助程序中更具体地在客户端查找。但是,如果您确定此时将在客户端上的项目集合的唯一文档是具有正确 projectId 的文档,那么只使用不带选择器的 find 就可以了。

    【讨论】:

    • 还请记住 - 即使这是目前唯一涉及该集合的活动订阅,将来您也可能会添加另一个订阅。在这种情况下,如果您没有在客户端添加额外的选择器,则很可能会引入错误。
    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多