我正在使用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()
仅返回登录用户的文档 - 不应该返回整个集合吗?其他用户默认是私有的吗?
答案 0 :(得分:6)
这是默认行为。您只能看到您登录的对象。
您可以创建自定义发布功能来发布自定义子集/您想要的内容。在下面的示例中,我发布了所有用户(仅限个人资料字段)
服务器端代码
Meteor.publish('users', function() {
return Meteor.users.find({}, {fields:{profile: true}});
});
客户端代码
Meteor.subscribe("users");
您可能希望将这些更改为仅发布与用户相关的内容。如果您有超过100个用户,那么将所有这些用户发布到客户端就开始浪费了。