mongodelete.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/env node
  2. var cli = require('cli'),
  3. options = cli.parse({
  4. leave: ['l', 'Period of time', 'string', '6m'],
  5. name: ['n', 'MongoDb database name', 'string', 'statsd'],
  6. host: ['h', 'MongoDb host', 'string', 'mongodb'],
  7. port: ['p', 'MongoDb port', 'string', '27017']
  8. })
  9. ;
  10. var mongo = require('mongodb');
  11. var moment = require('moment');
  12. var n = parseInt(options.leave, 10);
  13. var from = moment().subtract(n, options.leave.replace(n, '')).format('X');
  14. var to = moment().format('X');
  15. mongo.connect("mongodb://" + options.host + ":" + options.port + "/" + options.name, function (err, db) {
  16. if (err) {
  17. db.close();
  18. console.log(err);
  19. throw err;
  20. }
  21. db.listCollections().toArray(function(err, collInfos) {
  22. if (err) {
  23. db.close();
  24. console.log(err);
  25. throw err;
  26. }
  27. for (var i = 0; i < collInfos.length; i++) {
  28. console.log('db.collection('+collInfos[i].name+').remove({ time: { $lte: '+from+', $gte: '+to+' } })');
  29. db.collection(""+collInfos[i].name).remove({ time: { $lte: from, $gte: to } });
  30. }
  31. db.close();
  32. });
  33. });