2013-12-11 91 views
0

我有一個蒙戈文檔和幾個領域 -更新計算領域MongoDB中

User: { paid_visits: 10, free_visits: 10, totalLength: 120, avgRevenue: 4.4 } 

我自動更新考察和總長度,但爲了計算avgRevenue,我需要做的基礎上計算totalLength,paid_visits和free_visits。

目前我需要獲取用戶,計算avgRevenue,然後進行更新。

我想要做的是每次更新任何其他字段時更新avgRevenue。我怎樣才能做到這一點?

+0

看看這個:http://stackoverflow.com/questions/9691316/how-to-listen-for-changes-to-a-mongodb-collection –

回答

0

MongoDB沒有任何觸發器的服務器端支持,但不管這個需求是什麼,似乎你最好在你的應用模型中處理,因爲它僅限於特定的文檔類型。

如果您使用的是框架/ ODM,他們通常會根據請求生命週期中的各個觸發點來支持或掛鉤。

例如,Ruby的Mongoid ODM有許多有用的callbacks,它們允許您在文檔的適當位置調用應用程序邏輯,例如before_save。您的回叫可以檢查是否有任何相關字段已更改,並且只有在需要時才執行重新計算。