Meteor - 如何限制发布到客户端的字段?

时间:2012-10-09 03:42:45

标签: meteor

我想只向客户发布有限数量的数据。

我试过这样做:

# server
Meteor.publish('users', ->
  Meteor.users.find({},
    fields:
      services: 0
  )
)

但客户端仍然收到整个对象。

# client
Meteor.startup( ->
  Meteor.subscribe('users')
)

# ... 
# in another function
Meteor.users.find().observe( ->
  changed: (updated) ->
    console.log updated
)

我做错了什么?

2 个答案:

答案 0 :(得分:5)

Meteor.publish '', ->
    Posts.find({}, { fields: { title: 1, content: true, secret: false } });

如何添加{}

答案 1 :(得分:4)

以下代码适用于我(coffeescript)。 pwd字段尚未发布。

服务器

Meteor.publish "users", (userId) ->
  user = Users.find userId,
    fields:
      pwd: false

  return user

客户端

Meteor.autosubscribe ->
    userId = Session.get SESSION_USER

    Meteor.subscribe 'users', userId

我看到的唯一区别是

  • 0 vs false ...(应该仅仅是品味问题)
  • 您的收藏集可通过Meteor
  • 访问
  • 在客户端中,当您使用autosubscribe方法时,我的订阅会被置于observe回调中。

这些字段是否也存在于浏览器控制台的Meteor.users.find().fetch()结果中?