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



我在订阅方面遇到问题,这些订阅应该用不同的记录集填充客户端上的同一集合。 例如: 我有一个书籍收藏和两个不同的出版物:

  1. Meteor.publish(‘books’, () => Books.find({ status: { $ne: 3 } });
  2. 发布"booksForReservation",它返回一系列书籍(书籍根据预订和其他一些数据进行过滤(

当我从一条路线到另一条路线时,客户端上出现问题。所有书籍集合都在主组件中,当我需要这些booksForReservation客户端上的集合时,不会仅使用该特定书籍集进行更新。

我已经订阅了客户端,例如:

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

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

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

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

最新更新