ITPub博客

首页 > > > .NET操作 MongoDb,如何物理删除数据?remove方法是不行的

.NET操作 MongoDb,如何物理删除数据?remove方法是不行的

作者:hawkliu 时间:2019-08-29 09:30:31 0 删除 编辑

 DeleteAll

以上是删除日志数据方法。

场景:

日志生成功能,数据量很大,目前采取按时间创建数据库,每个月为一个新的数据库,代表当月的日志。例如:T_RunLog_201512,T_RunLog_201511,,数据库名字。

实现功能:定时删除数据,跨月删除直接删除数据库,例如:删除11月份的:database.drop();

public static bool DeleteDb(string connectionString, string databaseName)
        {
            MongoServer server = MongoServer.Create(connectionString);
            //获取数据库或者创建数据库(不存在的话)。
            MongoDatabase database = server.GetDatabase(databaseName);
            bool flag = true;
            try
            {
                database.Drop();
            }
            catch (Exception)
            {
                flag = false;
                throw;
            }
            return flag;
        }

问题:

删除一个月中几天的数据,不删除数据库,但MongoDb删除数据为逻辑删除,非物理删除,原来的日志文件还占用磁盘空间(妈的,10天就有20G的数据),怎么搞,

一句话表述我的问题:Mongodb如何物理删除一个集合中的数据,使得文件不占用磁盘空间(磁盘整理db.repairdatabase()方法就不用说了,性能太低)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/887/viewspace-3143843/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-29

  • 博文量
    274
  • 访问量
    1129