此Meteor应用程序具有帐户密码包。
Meteor.publish('tasks', function () {
return Tasks.find({userId: this.userId});
});
Meteor如何知道'tasks'集合中的哪个文档属于哪个用户?我是否需要在每个集合中添加ownerId: Meteor.userId
?感谢
答案 0 :(得分:1)
总之,“是”。这里没有什么神奇之处 - 选择器只是说:“找到userId
字段等于调用者用户ID的所有文档”。您应该确保userId
(或ownerId
或其他任何您想要调用的内容)正确写入(通常是在插入文档时)。
答案 1 :(得分:1)
执行此操作的常用方法是通过before
集合
Tasks
挂钩
Tasks = new Mongo.Collection('tasks');
Tasks.before.insert(function (userId, task) {
task.userId = userId;
});
Tasks.before.upsert(function (userId, selector, modifier, options) {
modifier.$set = modifier.$set || {};
modifier.$set.userId = userId;
});