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表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.