2017-02-14 52 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

采取备份后,我需要删除'用户'收集数据的我怎么能做到这一点在您的查询。 –

相关问题