假設我爲正在更新的文檔的屬性生成autoValue。但是,我需要現有文檔的一個(或多個)屬性,在autoValue函數中我無法訪問它們。Meteor - collection2 autoValue - 如何訪問不在修飾符內的其他文檔屬性
例如: 我正在爲文檔生成autoIncrement值。我需要doc.company和doc.date屬性來計算它。但是,我只是更新,讓我們說doc.isFinished屬性。因此,doc.date不能通過this.field()訪問。
非常感謝! :)
假設我爲正在更新的文檔的屬性生成autoValue。但是,我需要現有文檔的一個(或多個)屬性,在autoValue函數中我無法訪問它們。Meteor - collection2 autoValue - 如何訪問不在修飾符內的其他文檔屬性
例如: 我正在爲文檔生成autoIncrement值。我需要doc.company和doc.date屬性來計算它。但是,我只是更新,讓我們說doc.isFinished屬性。因此,doc.date不能通過this.field()訪問。
非常感謝! :)
這也正是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其他字段的值。如果這種設置不適用於您,請粘貼您的代碼,因爲它對我來說非常合適。
'this.field('yourFieldName')。value'的優點我是否在相關文檔中錯過了這一點? – zipzit 2016-09-07 06:12:56
給我們一些代碼,分享你的嘗試,指出我們的錯誤。簡單:) – mihai 2014-11-01 14:49:53
我會再試一次:比方說,我有一個文件,有10個領域。我運行 Collection.update(myId,{$ set:{name:'my new name'}); 這個集合有一個名爲「autoincrement」的字段,它有一個autoValue函數分配。但是,通過上面的更新,例如this.field('description')是未定義的(因爲它不在$集合中),即使文檔已經有一個不明確的description屬性。 – Radko 2014-11-13 10:46:40