【问题标题】:Update same client collection with different subscription使用不同的订阅更新相同的客户端集合
【发布时间】:2017-12-11 18:58:31
【问题描述】:

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

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

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

我已经在客户端订阅了:

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

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

如何用不同的订阅更新同一个集合?

【问题讨论】:

标签: meteor meteor-react


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2014-08-04
    • 2020-08-24
    • 1970-01-01
    相关资源
    最近更新 更多