Mongodb批量删除gridfs文件实例
平台有大量的图片已经不用了,数量级达到百万张,差不多100G的空间,放着不管是不是太浪费了?
db.fs.files.find({filename:/xxx/}).forEach(function(n){db.fs.files.update({filename:u.filename},{$set:{filename:newname}},false,true)}}//正则批量更改为固定名称,便于删除。 mongofiles-port12345-dxxxdeletenewname//mongofies根据filename批量干掉这些文件。
db.repairDatabase()//特别注意以上删除不是物理删除,chunks文件实际还在,showdbs或者db.stats()发现db的size没有变化,要执行db.repairDatabase();另外注意这个动作是全局写锁,很耗内存和cpu的,而且处理时间跟文件数量大小有关,务必在非高峰期做。