如何将字段添加到Meteor.users集合中

时间:2012-10-22 20:42:33

标签: meteor

我想要存储在客户端上我用户文档中的Facebook accessToken。在meteor documentation之后,我应该添加一个新的发布调用。

在server.js中:

Meteor.publish("access_token", function () {
  return Meteor.users().find(
    { _id : Meteor.userId() }, 
    {'services.facebook.accessToken': 1}
  );
});

在client.js中:

Meteor.subscribe("access_token");

好吧,这是我迷路的地方。现在,对于登录用户,accessToken是否只显示在Meteor.users集合中?像:

var user = Meteor.users.findOne({ _id : Meteor.userId() }); 
console.log(user); // includes services.facebook.accessToken now

显然,我已经尝试了上述内容并且accessToken没有显示出来。是的,我已经确认mongo文档包含services.facebook。

那么......我是否创建了一个新的客户端集合,并以某种方式将其与新发布相关联?我如何获得accessToken?

2 个答案:

答案 0 :(得分:9)

你应该使用“fields”关键字

Meteor.users.find({ _id: this.userId },
    { fields: { the-extra-fields-that-you-want-go-here: 1 } }
);

http://docs.meteor.com/#fieldspecifiers

答案 1 :(得分:4)

您可以发布所需的字段:

Meteor.publish( null, function() {
  Meteor.users.find({}, {fields: {profile: 1, username: 1, ...}})
}
相关问题