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

pet*_*ter 8 meteor

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

我试过这样做:

# server
Meteor.publish('users', ->
  Meteor.users.find({},
    fields:
      services: 0
  )
)
Run Code Online (Sandbox Code Playgroud)

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

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

# ... 
# in another function
Meteor.users.find().observe( ->
  changed: (updated) ->
    console.log updated
)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

cra*_*ngs 5

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

怎么样添加那些{}


And*_*eas 4

下面的代码对我有用(coffeescript)。该pwd字段未发布。

服务器

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

  return user
Run Code Online (Sandbox Code Playgroud)

客户

Meteor.autosubscribe ->
    userId = Session.get SESSION_USER

    Meteor.subscribe 'users', userId
Run Code Online (Sandbox Code Playgroud)

我看到的唯一区别是

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

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