package com.comisys.lanxin.open.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class mongoCleanUtil { /** * 1、获取到ObjectId * 2、在服务器mongo命令窗口进入库 * 3、执行以下操作清除,ISODate和ObjectId替换为自己所需要的,目前保留6个月或3个月 db.fs.files.remove({uploadDate:{ "$lt" : ISODate("2019-2-31T00:00:00Z") }}) db.fs.chunks.remove({'_id':{'$lte':ObjectId("5c28eb800000000000000000")}}) * @param args */ public static void main(String[] args){ try { String date = "2019-03-01 23:00:00"; System.out.println(dateToObjectId(date)); }catch (Exception e){ e.printStackTrace(); } } /** * 将时间转化成mongo的objectId * @param dateStr * @return * @throws ParseException */ private static String dateToObjectId(String dateStr) throws ParseException { StringBuffer objectId = new StringBuffer(""); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(dateStr); //转换为16进制的字符串 objectId.append(Long.toHexString(date.getTime() / 1000)); //bson-3.6.4.jar 版本校验ObjectId的长度为24位,不足24位补0 while(objectId.length() < 24) { objectId.append("0"); } return objectId.toString(); } }
java生成mongo的ObjectId,用于清理主键为ObjectId的mongo表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.