清理mongodb最老的数据

本文介绍了一个使用Java实现的MongoDB数据定时清理任务。该任务通过定义一个定时任务类,每隔一分钟执行一次数据清理操作。每次执行时,从数据库中获取50,000条历史记录,并逐条删除这些记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MongoDBDataClean {

	public static void main(String[] args) throws Exception {
		
		TimerTask task = new TimerTask(){

			@Override
			public void run() {
               clearMongoData();
			}

			private void clearMongoData() {
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				System.out.println("Start at : "+sdf.format(new Date()));
				
				MongoTemplate mongoTemplate = (MongoTemplate) SpringApplicationContextUtil.getInstance().getBean(
		                "mongoTemplate");
				Query query = new Query();
				query.sort().on("_id", Order.ASCENDING);
				List<HistoryEntry> list = mongoTemplate.find(query.limit(50000), HistoryEntry.class);
				
				System.out.println("Count end at :"+list.size()+"      "+sdf.format(new Date()));
				
				for(int i =0 ; i < list.size() ; i ++){
					mongoTemplate.remove(list.get(i));
				}
				System.out.println("Success end at :"+sdf.format(new Date()));
			}
		};
		
		Timer timer = new Timer();
		long delay = 0;
		long intevalPeriod = 60*1000;
		timer.scheduleAtFixedRate(task, delay, intevalPeriod);
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值