Mongodb Meteor将文档映射到用户ID
此Meteor应用程序具有帐户密码包Mongodb Meteor将文档映射到用户ID,mongodb,meteor,Mongodb,Meteor,此Meteor应用程序具有帐户密码包 Meteor.publish('tasks', function () { return Tasks.find({userId: this.userId}); }); Meteor如何知道“任务”集合中的哪个文档属于哪个用户?我是否需要向每个集合添加ownerId:Meteor.userId?谢谢一句话,“是的”。这里没有什么神奇之处——选择器只是说:“查找userId字段等于调用方用户id的所有文档”。由您来确保用户ID(或所有者ID或您想叫它的任何
Meteor.publish('tasks', function () {
return Tasks.find({userId: this.userId});
});
Meteor如何知道“任务”集合中的哪个文档属于哪个用户?我是否需要向每个集合添加
ownerId:Meteor.userId
?谢谢一句话,“是的”。这里没有什么神奇之处——选择器只是说:“查找userId
字段等于调用方用户id的所有文档”。由您来确保用户ID
(或所有者ID
或您想叫它的任何东西)写得正确(通常在插入文档时)。一句话,“是”。这里没有什么神奇之处——选择器只是说:“查找userId
字段等于调用方用户id的所有文档”。由您来确保正确写入用户ID
(或所有者ID
或您想调用它的任何内容)(通常在插入文档时写入)。一种常见的方法是通过在任务
集合上挂接
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;
});
一种常见的方法是通过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;
});