SpringBoot Mongo 动态分表 动态修改表名

前言

为什么分表?
mongo记录请求日志,由于业务的扩展,日志越来越多,导致mongo日志文件越大,导致查询特别慢。话不多说,直接上代码


一、使用步骤

	 //    mongo 表名
    public static final List<String> MONGO_SUBMASTER_LIST = Arrays.asList("requestLog");
    
    @Autowired
    private MongoTemplate mongoTemplate;
    
    public void test(){
       MongoDatabase db = mongoTemplate.getDb();
       String dbName = db.getName();
       int dateInt = DateUtil.getDateInt(DateUtil.getBeforeMonth(0));//获取一个月份值 yyyyMMdd
       MongoCollection dbCollection;
       for (String tableName : MONGO_SUBMASTER_LIST) {
           dbCollection = db.getCollection(tableName);
           dbCollection.renameCollection(new MongoNamespace(dbName + "." + tableName + "_" + dateInt), new RenameCollectionOptions().dropTarget(true));
       }
   }

你可能感兴趣的:(复用代码,spring,boot,java,mongodb)