2017-02-14 64 views
-1

我要每個月把我userdatas集合的備份MongoDB的集合。如何備份使用express.js和Node.js的

備份是指:

我需要userdatas數據並將其存儲在一些backupuserdatas集合。每1個月批量程序應自動運行,並應將該月的數據(文檔)存儲在backupuserdatas集合中。

我已經使用節點的cron運行批處理程序,但我不知道寫一個查詢每月備份我的收藏userdatas

我怎樣才能在Node.js的,express.js做到這一點和MongoDB?

+0

如果你想備份,爲什麼仍然存儲在同一個數據庫?爲什麼不把它存儲在一個文件中?無論如何,你打算讓用戶通過expressjs rest api下載它吧? – Simon

+0

文件或數據庫,但我需要存儲每個人的月份數據,我需要刪除'userdatas'集合中的一個月數據 –

回答

0

您可以運行在userdatas找到查詢表,比在它裏面使用插入查詢在backupuserdatas表中插入數據。

我知道這不是一個很好的解決方案,但對於小的數據,你可以使用它。

對於裏面你需要使用Async節點的同步行爲運行多個查詢。希望這會幫助你。

您可以通過下面的代碼在你的節點的cron部分這樣做:

mongoose.users.find({}, function(err, result){ 
    var data = {}; 
    var curr_date = new Date(); 
    data["user_data"] = result; 
    data["created"] = curr_date; 
    var savebackup = new mongoose.backup_user(data); 
    savebackup.save(function(err,res){ 
     // save done 
     mongoose.users.remove({}, function(err, result){}); 
    }); 
}); 

在這裏,我創建了一個名爲「backup_user」一個備份表和用戶表「用戶」。

這將每次運行的節點的cron API時的所有用戶數據保存到backup_user表。

+0

你能幫我解決這個問題。米不能理解 –

+0

請再次檢查答案我用代碼更新它。 –

+0

採取備份後,我需要刪除'用戶'收集數據的我怎麼能做到這一點在您的查詢。 –