標籤:mongodb gridfs
GridFS是一種將大型檔案儲存體在Mongodb資料庫中的檔案規格。
一、如何?海量儲存
由於Mongodb中的bson對象大小是限制的,所以gridfs規範提供了一種透明的機制,可以將一個大檔案分成多個較小的檔案。這樣的機制允許有效地儲存大檔案的對象,特別是哪些巨大的檔案,比如視頻,高清圖片;該規範指定了一個將檔案分塊的標準,每個檔案都在集合對象中儲存一個中繼資料對象,一個或多個塊對象可被組合在一個chunk塊集合中。mongodb中主要是利用mongofiles工具。
Grifs使用兩個表來儲存資料:
Files(包含中繼資料對象)
chunks(抱哈你一些相關資訊的二進位塊)
為了使多個gridfs命名為一個單一的資料庫,檔案和塊都有一個首碼。預設情況下,首碼是fs.所以任何預設的gridfs儲存將包括命名空間fs.files和fs.chunks。
二、命令列工具mongofiles是從命令列操作gridfs的一種工具,例如將“testfile”這個檔案存到資料庫裡面,可以執行如下操作。首先咱們整體認識一下mongofiles:
執行個體存放檔案到資料庫中
db.fs.files.find()參數說明:
filename:儲存檔案的名稱;chunksize:chunks的大小uploaddate:入庫時間md5:檔案的md5碼length:檔案的大小(單位:位元組)
db.fs.chunks.find()參數說明:
n:代表chunks的序號,此序號是從0開始;data欄位就是實際儲存的資料
從資料庫取出來資料:
D:\Program Files\mongodb\bin>mongofiles get test.txtconnected to: 127.0.0.1done write to: test.txt
gridfs檔案也可以建立索引,一個塊就可以利用它file_id和n的值來進行檢索。
db.fs.files.find()參數說明:
【MongoDB】MongoDB資料庫之海量儲存機制