我曾经matb33:collection-hooks
在插入另一个文档后插入一个文档,是否可以在插入后更新现有文档?我正在尝试执行以下操作:
- 在模板
Box
中,其数据上下文具有_id
ofboxId
,调用方法将新文档插入到Targets
集合中 - 获取
_id
新文档的 并将其添加到具有 的文档的数组_id
中boxId
。
由于this
引用了钩子中的新文档,我不知道如何获取boxId
更新正确的文档。
根据 Pawel 的回答,这里的最终代码:
Template.Box.events({
'click .add button': function(e) {
e.preventDefault();
var currentBoxId = this._id;
var target = {
...
};
Meteor.call('targetAdd', target, currentBoxId, function(){});
}
});
Meteor.methods({
targetAdd: function(targetAttributes, currentBoxId) {
check(this.userId, String);
check(currentBoxId, String);
check(targetAttributes, {
...
});
var target = _.extend(targetAttributes, {
userId: user._id,
submitted: new Date()
});
var targetId = Targets.insert(target);
Boxes.update(currentBoxId, {$addToSet: {targets:targetId}});
return {
_id: targetId
};
}
});