流星:通过userId加入但显示用户名,发布用户数据?

Meteor: Join by userId but display username, publishing user data?

所以,我有一堆集合与 Meteor.users 集合通过 userId 作为外键连接。例如。我有帖子集,每个 post 都有自己的页面。在 post 页面上,我将 userId 作为作者,并且在该 post 上有一堆评论(来自 Comments 集合),每个评论都有 postId 和 userId。 UserIds 很难看,相反我想显示 usernames。你将如何实现这一目标?我可以使用的任何智能包或工作示例?我不喜欢发布所有用户数据的想法。谢谢。

您不需要发布所有数据。在 publish 方法中,您可以这样使用 fields 说明符:

Meteor.users.find({}, {fields: {'username': 1}});

这样你只发布了 _idusername

那么在meteor helper中你可以有:

username: function() {
  var user = Meteor.user.findOne(this.userId);
  return user.username || user.profile.name;
}

如果 Post 是您的上下文