用mongo 的dump 和 restore实现

shell版

#!/bin/bash
mongodump --host 127.0.0.1 --port -d lewifi -c auditOrigData -q {time:{\$gt:}} -o ~/auditmongologchange
mongo <<EOF
use lewifi
db.auditOrigData.renameCollection('auditOrigData_back')
EOF
echo "restore"
mongorestore -h 127.0.0.1 --port --db lewifi ~/auditmongologchange/lewifi/
rm -rf ~/auditmongologchange

nodejs版 主要代码

Task.prototype.backandChangeauditOrigData = function(){
var starttoday=new Date();
var todayyymmdd=tool.getYYMMDD(starttoday);
starttoday.setDate(starttoday.getDate()-180);
var datenum=tool.getDateCurTs(starttoday);
var yymmdd=tool.getYYMMDD(starttoday);
var dumpcommand='mongodump --host 127.0.0.1 --port 27017 -d lewifi -c auditOrigData -q {time:{\\$gt:'+datenum+'}} -o /Users/cdpmac/auditmongologchange';
auditApi.execMonoOperaCommand(dumpcommand,function(dumperr,dumpout){
console.log('dump\n'+dumperr+'\n'+dumpout);
if(!dumperr){
shenjiauditlogTestCollection.rename('auditOrigData'+yymmdd+'-'+todayyymmdd,function(renameerr,renameinfo){
console.log('rename\n'+renameerr+'\n'+JSON.stringify(renameinfo));
var restorecommand='mongorestore -h 127.0.0.1 --port 27017 --db lewifi /Users/cdpmac/auditmongologchange/lewifi/';
auditApi.execMonoOperaCommand(restorecommand,function(reserr,resout){
console.log('restore+\n'+reserr+'\n'+resout);
auditApi.execMonoOperaCommand('rm -rf /Users/cdpmac/auditmongologchange',function(rmerr,rmout){
})
}
)
})
}
});
}
execMonoOperaCommand内容
var exec = require('child_process').exec;

function execMonoOperaCommand(command, callback) {
child = exec(command, function(error, stdout, stderr) {
sys.print('error: \n' + error+"\n");
sys.print('stdout: \n' + stdout+"\n");
sys.print('stderr: \n' + stderr+"\n");
callback(error,stdout);
});
}
 

最新文章

  1. Xcode插件安装 错选了Skip Bundle解决办法
  2. 《Visual C++并行编程实战》译者序
  3. UE4.7的IOS发布和调试的相关问题
  4. androidstudio构建(或导入)工程(不用gradle)
  5. 网络流系列算法总结(bzoj 3438 1061)
  6. Intersection of Two Linked Lists(java)
  7. 正则表达式,提取html标签的属性值
  8. SpringBoot+MyBatis+MySQL读写分离
  9. Meta标签详解
  10. OpenCV Mat与UIImage之间的转换
  11. JavaScript之this,call,apply
  12. 【python基础】os.path模块常用方法详解
  13. SpringJMS解析-JmsTemplate
  14. k8s实战读书笔记
  15. redis学习笔记——主从同步(复制)
  16. HDU 4586 Play the Dice(数学期望)
  17. Android - Telephony API 1.6
  18. SQL 随手记
  19. .NET Core环境安装
  20. Java并发编程(十一)实例封闭

热门文章

  1. 经理人和app开发者大打出手,说明这个市场已经畸形变态?
  2. 选择排序&amp;冒泡排序
  3. jQuery如何给DOM添加ID
  4. 查看jks文件中的签名
  5. Java clone方法的使用
  6. 1017A.The Rank#排名
  7. PCB绘制——培训内容
  8. 第二个--关于led灯的代码总结
  9. ZZJ_淘淘商城项目:day02(淘淘商城01 - 项目讲解、环境搭建)
  10. 爬虫笔记(九)——安装Fiddler