установите любой пакет cron
, например https://www.npmjs.com/package/node-schedule
, и в вашей модели mongoose убедитесь, что вы сохраняете временную метку созданного_тата, если не просто timestamps:true
.Ежедневный запуск cron
const UserSchema = new Schema({..}, { timestamps: true });
Теперь скопируйте фрагмент в ваш app.js
var schedule = require('node-schedule');
var j = schedule.scheduleJob('0 1 * * *', function(){
return deleteOldUsers();
});
, если ваша модель называется User
, а ее каталог - ./models/User
const User = require('./models/User');
deleteOldUsers = () => {
let current = new Date();
// subtracting 60 days
current.setDate(current.getDate() - 60);
User.deleteMany({ created_at: {$lte: current} }, (err) => {
if(err) return console.log("Error while erasing users " + err);
console.log("successfully erased data")
})
}
РЕДАКТИРОВАТЬ - ЕСЛИ ВЫ ХОТИТЕ ИСПОЛЬЗОВАТЬ МОМЕНТ JS ВМЕСТО ДАТЫ
const User = require('./models/User');
const moment = require('moment');
deleteOldUsers = () => {
// subtracting 60 days
let current = moment().subtract(60, 'days');
current = moment.utc(current).format();
User.deleteMany({ created_at: {$lte: current} }, (err) => {
if(err) return console.log("Error while erasing users " + err);
console.log("successfully erased data")
})
}