程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MongoDB數據庫 >> MongoDB綜合知識 >> Mongodb批量刪除gridfs文件實例

Mongodb批量刪除gridfs文件實例

編輯:MongoDB綜合知識

平台有大量的圖片已經不用了,數量級達到百萬張,差不多100G的空間,放著不管是不是太浪費了?
復制代碼 代碼如下:
db.fs.files.find({filename:/xxx/}).forEach(function(n) {db.fs.files.update({filename:u.filename},{$set:{filename:newname}},false,true)}} //正則批量更改為固定名稱,便於刪除。
mongofiles -port 12345 -d xxx delete newname //mongofies根據filename批量干掉這些文件。

db.repairDatabase() //特別注意以上刪除不是物理刪除,chunks文件實際還在,show dbs 或者 db.stats() 發現db的size沒有變化,要執行db.repairDatabase();另外注意這個動作是全局寫鎖,很耗內存和cpu的,而且處理時間跟文件數量大小有關,務必在非高峰期做。

差不多1個多小時後over, 舒坦了,100G空間啊!!!

Be aware that this command can take a long time to run if your database is large. In addition, it requires a quantity of free disk space equal to the size of your database. If you lack sufficient free space on the same volume, you can mount a separate volume and use that for the repair. In this case, you must run the command line and use the –repairpath switch to specify the folder in which to store the temporary repair files.
Warning:This command obtains a global write lock and will block other operations until it has completed.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved