我不确定在文档中哪处可以找到它。如何向User对象添加更多对象?
例如,如果我运行
meteor add accounts
我获得了一个包含工作用户登录/注册模板的完整用户集合。我想在此用户集合中添加一个帖子集合/对象,以便用户只能查看自己的帖子。
那么如何将每个帖子添加到当前用户对象?
答案 0 :(得分:2)
您可以通过添加accounts-password
包将用户添加到Meteor.users集合中。使用Accounts.createUser()
方法创建新用户。
在此处查找文档:https://docs.meteor.com/api/passwords.html#Accounts-createUser
答案 1 :(得分:1)
Meteor.users是Meteor中用户收集的句柄。你可以像任何其他收藏品一样使用它AKA
Meteor.users.findOne(id)
or
Meteor.users.update(...)
当然,您无法将帖子集合添加到用户集合中。这些将是不同的集合。
在用户集合文档下存储MongoDB中的对象非常简单:
Meteor.users.update(
{ _id: userId },
{ $set: { objectFieldName: { a: 1, b: 2 }}}
)
或者,如果您需要在用户创建时执行此操作,则应使用Accounts package hooks。
答案 2 :(得分:0)
你接近错了。使用pub / subs来实现这一目标。
插入帖子时,请使用名为userId或ownerId
的字段//inside Meteor.methods() on server side
Posts.insert({
owner: Meteor.userId(),
//some other fields
});
然后在您的出版物中,仅返回用户拥有的帖子
//publication on server side
//checks if the visitor is a user
//if user, returns that user's posts
Meteor.publish('posts', function() {
if (this.userId) {
return Posts.find({owner: this.userId})
}
});
然后订阅该出版物。无需参数:
//client side
Meteor.subscribe('posts')