2017-06-08 133 views
0

我正在與mongoose一起管理我的mongoDB集合。 我有一個包含兩個數字字段的集合。我想要設置另一個字段,並在每次更新其中一個字段時將這兩個字段分開。Mongo - 在更新文檔時更新另一個字段的結果字段

讓我們坐在這是我的蒙戈集合:

{ 
    id: 1, 
    num1: 100, 
    num2: 50, 
    result: 2 
}, 
{ 
    id: 2, 
    num1: 200, 
    num2: 10, 
    result: 20 
}, 
{ 
    id: 1, 
    num1: 40, 
    num2: 5, 
    result: 8 
} 

現在,ID 2被更新的項目,NUM1設置爲50。我要重新計算,並設置結果字段與新的正確的值( 10)。 (更新項目,我使用bulk.find()。upsert()。updateOne()funciton)。

我該如何處理性能影響較小的問題?

回答

1

您可以使用預存鉤做計算:

schema.pre('save', function(next) { 
    this.result = this.num1/this.num2; 
    next(); 
}); 

...其中「模式」是你的貓鼬架構。

然後,當您更新num1或num2時,結果將被計算並保存。

相關問題