使用不同的订阅更新相同的客户端集

时间:2017-07-07 12:59:53

标签: meteor meteor-react

我的订阅有问题,应该在客户端使用不同的记录集填充相同的集合。 例如: 我有一本书籍收藏和两种不同的出版物:

  1. Meteor.publish(‘books’, () => Books.find({ status: { $ne: 3 } });
  2. 发布“booksForReservation”,它返回一系列书籍(书籍根据预订和其他一些数据进行过滤)
  3. 当我从一条路线到另一条路线时,客户端出现问题。所有图书集都在主要组件中,当我需要时,客户端上的booksForReservation集合不会仅使用特定的书籍集进行更新。

    我订阅了客户端,如:

    Meteor.subscribe(‘booksForReservation’, reservationsIds);
    let books = Books.find({}).fetch();
    

    但我仍然会显示所有图书集。当我在客户端使用服务器上使用的相同查询过滤了Books集合时,集合已更新。但是在服务器上过滤它没有任何意义。

    如何使用不同的订阅更新相同的集合?

1 个答案:

答案 0 :(得分:2)

您必须使用服务器中的查询过滤客户端上的集合。您订阅了两个出版物,因此在客户端上您将获得两个出版物的数据。服务器端的过滤收集点是安全性。通过这样做,您不会将任何不需要的数据发布到客户端。您可以在https://guide.meteor.com/data-loading.html#specific-queries

了解更多相关信息