如何将值从一个属性传递到同一集合的另一个属性?

时间:2018-06-21 00:32:14

标签: javascript meteor

我的“工作”收藏集具有以下扩展属性:

   var job = _.extend(jobAttributes, {
      userId: user._id, 
      author: user.profile.name.toLowerCase(),
      submitted: new Date(),
      commentsCount: 0,
      upvoters: [],
      votes: 10,
      apply: 0,
      tweets: 0,
      views: 0,
      day1: 2,
      day2: 0
    });

我想做的就是将值从“第1天”发送到“第2天”

我为此做了一个'SyncedCron'

SyncedCron.add({
name: 'Update Example',
schedule: function(parser) {
    return parser.text('every 2 minutes');
},
job: function() {
    var one = this.day1;
    Jobs.update({'day2': one});
}
});

但是我没有更新属性,而是出现了这个错误:

Error: Invalid modifier. Modifier must be an object.

2 个答案:

答案 0 :(得分:2)

问题出在Jobs.update({'day2': one});上。

来自documentation

collection.update(selector, modifier, [options], [callback])

必须提供选择器和修饰符。

答案 1 :(得分:1)

在插入自身时,我使用类似的方法基于另一个字段填充字段。 我已经定义了架构,例如..

Jobs = new Mongo.Collection("jobs");

Jobs.schema = new SimpleSchema({
  day1: {
    type: SimpleSchema.Integer,
  },
  day2: {
    type: Number,
    autoValue: function() {
      if (this.isInsert) {
        return this.siblingField("day1").value;
      }
    }
  }
});

Jobs.attachSchema(Jobs.schema);