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

SpringBoot Mongo 动态分表 动态修改表名,第1张

前言

为什么分表?
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));
       }
   }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/920196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存