
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/ ,如需转载,请注明出处,否则将追究法律责任。