Meteor - collection2 autoValue - 如何访问不在修饰符中的其他文档属性

时间:2014-11-01 14:45:50

标签: meteor meteor-collection2

假设我正在为我正在更新的文档的属性生成autoValue。但是,我需要现有文档的一个(或多个)属性,我在autoValue函数中无法访问这些属性。

例如: 我正在为文档生成autoIncrement值。我需要doc.company和doc.date属性来计算它。但是,我只是更新,比方说doc.isFinished属性。因此,无法通过this.field()访问doc.date。

非常感谢! :)

1 个答案:

答案 0 :(得分:3)

这正是this.field方法的用途,但请注意,您应该将field传递给它,不是 doc.field。例如:

YourCollectionSchema = new SimpleSchema({
    ...
    autoIncrement: {
        type: Number,
        autoValue: function() {
            var company = this.field('company').value,
                data = this.field('data').value;
            return // WHATEVER YOU NEED TO CALCULATE THE VALUE OF autoIncrement
        }
    },
    ...
});

显然这可能不符合您的确切要求,但应该演示如何获得autoValue中其他字段的值。如果这种设置对您不起作用,请粘贴您的代码,因为它对我来说非常适合。