如何在需要时才发布集合?

时间:2015-10-11 13:53:47

标签: javascript mongodb meteor

在我的应用程序中,我有一个公共配置文件,它只是我的Meteor.users可用的所有字段的子集。我知道我可以只从集合中发布某些字段,但我觉得当我订阅这些数据时,会有很多不必要的数据传输给用户。因此,我希望能够在用户请求时发布此数据,即当您访问/public-profile/425f7834985r79na8syf

1 个答案:

答案 0 :(得分:0)

  1. 定义带参数的路线(在您的情况下为/public-profile/:_id
  2. 让您的路由订阅使用_id作为订阅参数的出版物,例如:

    Meteor.subscribe('oneProfile',id);
    
  3. 将您的出版物设置为:

    Meteor.publish('oneProfile',function(id){
      return Meteor.users.find({_id: id},{fields: {thisField: 1, thatField: 1}});
    });
    
  4. 请注意,即使我们只需要一个文档,此发布函数也会返回游标。发布功能无法使用findOne()返回单个文档。