《MongoDB GridFS》要點:
本文介紹了MongoDB GridFS,希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:非關(guān)系型數(shù)據(jù)庫
GridFS 用于存儲和恢復(fù)那些跨越16M(BSON文件限制)的文件(如:圖片、音頻、視頻等).
GridFS 也是文件存儲的一種方式,然則它是存儲在MonoDB的集合中.
GridFS 可以更好的存儲年夜于16M的文件.
GridFS 會將年夜文件對象分割成多個小的chunk(文件片段),一般為256k/個,每個chunk將作為MongoDB的一個文檔(document)被存儲在chunks集合中.
GridFS 用兩個聚攏來存儲一個文件:fs.files與fs.chunks.
每個文件的實際內(nèi)容被存在chunks(二進制數(shù)據(jù))中,和文件有關(guān)的meta數(shù)據(jù)(filename,content_type,還有用戶自界說的屬性)將會被存在files集合中.
以下是簡單的 fs.files 聚攏文檔:
{
"filename": "test.txt",
"chunkSize": NumberInt(261120),
"uploadDate": ISODate("2014-04-13T11:32:33.557Z"),
"md5": "7b762939321e146569b07f72c62cca4f",
"length": NumberInt(646)}
以下是簡單的 fs.chunks 聚攏文檔:
{
"files_id": ObjectId("534a75d19f54bfec8a2fe44b"),
"n": NumberInt(0),
"data": "Mongo Binary Data"}
GridFS 添加文件
現(xiàn)在我們使用 GridFS 的 put 命令來存儲 mp3 文件. 挪用 MongoDB 安裝目錄下bin的 mongofiles.exe工具.
打開命令提示符,進入到MongoDB的安裝目錄的bin目錄中,找到mongofiles.exe,并輸入下面的代碼:
>mongofiles.exe -d gridfs put song.mp3
GridFS 是存儲文件的數(shù)據(jù)名稱.如果不存在該數(shù)據(jù)庫,MongoDB會自動創(chuàng)立.Song.mp3 是音頻文件名.
使用以下命令來查看數(shù)據(jù)庫中文件的文檔:
>db.fs.files.find()
以上命令執(zhí)行后返回以下文檔數(shù)據(jù):
{
_id: ObjectId('534a811bf8b4aa4d33fdf94d'),
filename: "song.mp3",
chunkSize: 261120,
uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",
length: 10401959 }
我們可以看到 fs.chunks 集合中所有的區(qū)塊,以下我們獲得了文件的 _id 值,我們可以根據(jù)這個 _id 獲取區(qū)塊(chunk)的數(shù)據(jù):
>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})
以上實例中,查詢返回了 40 個文檔的數(shù)據(jù),意味著mp3文件被存儲在40個區(qū)塊中.
如您還有不明確的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
維易PHP培訓學院每天發(fā)布《MongoDB GridFS》等實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/10239.html