2015-02-18 60 views
0

所以我有一個簡單的Web應用程序與ExpressJS和貓鼬。 我的用戶模式看起來是這樣的:貓鼬。自動更改給定日期的值

var userSchema = new mongoose.Schema({ 
    dateexp: Date, 
    active: { type: Boolean, default: false} 
}); 

var User = mongoose.model('User', userSchema); 

我希望做的是讓應用檢查所有用戶的「dateexp」與「date.now」和「積極」的值更改爲true,如果它通過。

問題是:我需要應用程序自動檢查此值,每天至少。 感謝您的幫助

回答

0

沒有辦法單獨使用貓鼬做到這一點。

我(爲它的價值)的建議是有這樣的事情:

last_activity: { type: Date } 

...您更新每次用戶登錄這樣一來,你的數據庫不必知道無論用戶是否「活躍」 - 您的應用程序都可以根據last_activity與當前日期的比較來計算出結果。

查詢起來也很容易,所以如果您有批處理作業或任何只應用於「活動」用戶的應用程序,那麼您只需編寫一個查詢,查找所有日期小於(例如)30天前的用戶。

+0

感謝您的建議。還有一個問題 - 例如,如果我收集了「帖子」,而且我必須製作類似TTL過期的內容,但不會將其刪除,而只需自動更改 - 最佳方式是什麼? – 2015-02-18 11:42:08

+0

再次 - 無法自動更改。你可以做一個TTL來刪除*,但不能修改。我堅持只在文檔中加入時間戳的策略,然後讓應用程序決定是否有「活動」。 – 2015-02-18 14:43:50

+0

感謝您的幫助 – 2015-02-18 15:35:58