我有一個時間敏感數據的數據庫。 x時間後刪除條目是否有「最佳做法」?大概30分鐘,但也許24小時。我已經考慮過間隔時間和東西,但這似乎是一個懶惰的解決方案,可以快速消耗資源。在Meteor應用程序的特定時間集合中刪除mongo條目
回答
間隔是正確的解決方案。但是,爲了不消耗資源,以及爲了防止服務器重新啓動,請不要爲要刪除的每個元素創建新的時間間隔。相反,運行一個全球性的間隔,以便清除在一定時期內的所有元素:
var clear = function() {
var min = new Date(new Date() - DURATION);
Documents.remove({
createdAt: {$lt: min}
});
};
Meteor.startup(function() {
clear();
Meteor.setInterval(clear, INTERVAL);
});
哪裏DURATION
是毫秒文件應留在DB的數量降到最低,並且INTERVAL
是你想多長時間進行清除。
好的。聽起來不錯。謝謝您的幫助!我已將其標記爲接受的答案。 – DustinRiley 2014-10-08 15:53:10
流星在參考什麼?我是否需要擁有這個依賴才能使其工作?謝謝!這正是我需要的。 – AlexanderGriffin 2016-09-09 18:58:10
@AlexanderGriffin:我想我不明白你的問題。代碼示例使用Meteor API,但我描述的方法當然可以在任何環境中使用。 – 2016-09-09 19:28:01
您是否考慮在檢索數據時過濾數據,而不是實際刪除數據? – stubailo 2014-10-08 00:34:02
我有,但與數據量有關的可能性,它會很快凌亂。 – DustinRiley 2014-10-08 01:28:33