钩子之前的集合叫两次

时间:2015-03-17 06:34:47

标签: meteor

我正在使用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,则只插入一次记录,但当然不会调用原始需求更新。

1 个答案:

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