Meteor.users.find()。fetch()返回单个用户

时间:2014-04-26 19:40:04

标签: meteor

我正在使用account-google软件包注册用户

我有多个用户存储在mongo

db.users.find()

{ "_id" : "av8Dxwkf5BC59fzQN", "profile" : { "avatar" : "https://lh3.googleusercontent.com/-rREuhQEDLDY/AAAAAAAAAAI/AAAAAAAADNs/x764bovDfQo/photo.jpg", "email" : "lfender6445@gmail.com", "name" : "Luke Fender", "room" : "2" }, "services" : { "resume" : { "loginTokens" : [    {   "when" : ISODate("2014-04-26T19:34:52.195Z"),   "hashedToken" : "8na48dlKQdTnmPEvvxBrWOm3FQcWFnDE0VnGfL4hlhM=" } ] } } }

{ "_id" : "6YJKb7umMs2ycHCPx", "profile" : { "avatar" : "https://lh3.googleusercontent.com/-rREuhQEDLDY/AAAAAAAAAAI/AAAAAAAADNs/x764bovDfQo/photo.jpg", "email" : "lfender6445@gmail.com", "name" : "Luke Fender", "room" : "2" }, "services" : { "resume" : { "loginTokens" : [    {   "when" : ISODate("2014-04-26T19:35:00.185Z"),   "hashedToken" : "d/vnEQMRlc4VI8pXcYmBvB+MqQLAFfAKsKksjCXapfM=" } ] } } }

但是Meteor.users.find().fetch()仅返回登录用户的文档 - 不应该返回整个集合吗?其他用户默认是私有的吗?

1 个答案:

答案 0 :(得分:6)

这是默认行为。您只能看到您登录的对象。

您可以创建自定义发布功能来发布自定义子集/您想要的内容。在下面的示例中,我发布了所有用户(仅限个人资料字段)

服务器端代码

Meteor.publish('users', function() {
    return Meteor.users.find({}, {fields:{profile: true}});
});

客户端代码

Meteor.subscribe("users");

您可能希望将这些更改为仅发布与用户相关的内容。如果您有超过100个用户,那么将所有这些用户发布到客户端就开始浪费了。