我正在使用matb33:collection-hooks
我很难理解为什么一次调用versions.insert(只显示一个控制台日志),但在版本集中有2条记录,其中插入了2个不同的_id。
Requirements = new Meteor.Collection('requirements');
var versions = new Meteor.Collection('requirements_versions');
Requirements.before.update(function(userId, doc, fieldNames, modifier, options) {
// copy doc to versions collection
var savedDoc = _.extend({}, doc); // shallow copy
if(typeof(savedDoc._id) != 'undefined') delete savedDoc._id;
console.log(versions.insert(savedDoc)); // FIXME: why inserted 2 times ???
});
如果我在钩子的末尾添加一个返回false,则只插入一次记录,但当然不会调用原始需求更新。
答案 0 :(得分:3)
试
const versions = new Meteor.Collection('requirements_versions');
const Requirements = new Meteor.Collection('requirements');
if (Meteor.isServer) {
Requirements.before.update(function(userId, doc, fieldNames, modifier, options) {
// insert version doc
versions.insert(_.omit(doc, '_id'));
});
}