Meteor将文档映射到userId

时间:2016-03-14 18:41:45

标签: mongodb meteor

此Meteor应用程序具有帐户密码包。

Meteor.publish('tasks', function () {
  return Tasks.find({userId: this.userId});
});

Meteor如何知道'tasks'集合中的哪个文档属于哪个用户?我是否需要在每个集合中添加ownerId: Meteor.userId?感谢

2 个答案:

答案 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;
});