Mongo讀書筆記1 GridFS

2021-09-08 11:36:53 字數 1858 閱讀 7311

乙個mongo文件最大4m.

gridfs不依賴於mongodb, 其他符合規範的驅動都可以訪問它。

gridfs包含兩部分:一部分儲存檔名和其他metadata; 另一部分儲存實際的檔案,通常分成乙個個大小為256k的小塊。

mongofiles工具:

列出mongofiles.

mongofiles list

如果要訪問遠端伺服器,用-h 比如:

上傳檔案:

monofiles put 《檔案路徑》

上傳後如果用mongofiles list來檢視,發現儲存的名字就是原檔案的完成路徑,但是實際上是存在gridfs中。也就是說,如果把原檔案刪了,gridfs還是可以查到的。

獲取檔案 :

mongofiles get 《檔案路徑》

注意:這一操作會覆蓋實際的物理檔案。比如:把乙個檔案傳到gridfs後,然後做了一些更改,再執行get操作,那麼這段時間的更改都會被覆蓋掉。

刪除檔案。

mongofiles delete 《檔案路徑》

搜尋檔案

mongofiles search 《關鍵字》

當上傳同一檔案兩次時,mongo會存兩個同名的檔案,只有_id屬性不同。

gridfs預設的chunk大小是 256k, 知道這個大小是必要的,因為你可以知道你的檔案儲存的時候被分成多少塊。當然資料庫驅動會為你處理所有的事情,你在儲存的時候不需要擔心這些chunk size相關的問題。

mongo依賴於md5來實現security 和 integration, security是為了防止沒有許可權的使用者訪問了不該他訪問的資源,integration確保檔案不被更改。

md5現在已經不安全,理論上可以產生用同乙個md5 checksum(或者md5 hash)產生兩個不同的檔案(這種情況被稱為collision),但是由於做此事的工作量非常大,而且把檔案的其他屬性用做成一樣的非常難,而且有的沒有意義,所以實際上還是可以繼續用md5.

如果你基於安全性考慮,最好用sha家族的演算法,最理想的是sha-256或者sha-512, 儘管理論上這些演算法也有風險,但是目前還沒有遇到實際這樣做出的例子。但是,對於使用者名稱密碼等重要的資料,你可能要考慮用sha家族的演算法來進行加密.

檢視gridfs 的命令。

db.fs.files.find() 檢視gridfs metadata的集合。

db.fs.chunks.find() 檢視實際的檔案塊,以256k為單位。

這裡需要注意的是,gridfs只是資料儲存的地方,當files集合中的一條記錄被刪除時,gridfs不會自動刪除chunks中對應的記錄,需要資料庫驅動程式(比如mongo c++ driver)來做這種清理工作。所以,雖然你可以在程式中直接操作files集合,但是最好還是通過資料庫驅動程式(比如比如mongo c++ driver)來操作。

(the definitive guide to mongodb)

mongo讀書筆記 一

show dbs 顯示所有庫 use db name 切換到db name庫 show collections 顯示當前庫的所有文件集合 db.user table.insert 插入文件,會自動生成乙個objectid db.user table.insert 批量插入多個文件 db.user t...

讀書筆記 1

從我第一次看到windows就對它那花花綠綠的外表所吸引,大學兩年過來,時間又讓我從另乙個角度重新認識的了這些美麗的。本學期開始圖形程式設計的學習,探索windows圖形系統,並對gdi api,directdraw api進行學習。之所以寫部落格,第 一 是想勉勵自己不斷學習,讓大家監督 第 二 ...

讀書筆記1

netstat p525 網路資訊服務是通過本地查詢,還是要連線到遠端資料庫 p527 網路配置檔案?服務資訊函式?linux下如何組網 p527 如何設定計算機的主機名 p528 套接字 第15章 套接字 套接字 p513,523 what 套接字 一種程序間通訊機制 不僅可以本地程序通訊,也可以...