MongoDB教學
MongoDB快速入門
MongoDB歷史
MongoDB特點
MongoDB數據庫的優點
MongoDB安裝配置(Windows)
MongoDB安裝配置(Ubuntu)
MongoDB安裝配置(RedHat/CentOS)
MongoDB數據建模
MongoDB創建數據庫
MongoDB刪除數據庫
MongoDB創建集合
MongoDB刪除集合
MongoDB數據類型
MongoDB插入文檔
MongoDB查詢文檔
MongoDB更新文檔
MongoDB刪除文檔
MongoDB投影(選擇字段)
MongoDB限制記錄數
MongoDB排序記錄
MongoDB索引
MongoDB聚合
MongoDB複製
MongoDB分片
MongoDB備份與恢復
MongoDB部署
Java連接MongoDB操作
Python連接MongoDB操作
PHP連接MongoDB操作
Ruby連接MongoDB操作
MongoDB GridFS
GridFS是用於存儲和檢索大型文件(如圖像,音頻文件,視頻文件等)的MongoDB規範。它是一種用於存儲文件的文件系統,但其數據存儲在MongoDB集合中。 GridFS存儲文件可超過文件大小限制爲16MB
的功能。
GridFS將文件劃分成塊,並將每個數據塊存儲在單獨的文檔中,每個文件的最大大小爲255k
。
默認情況下,GridFS使用兩個集合fs.files
和fs.chunks
來存儲文件的元數據和塊。 每個塊由其唯一的ObjectId字段_id
標識。 fs.files
作爲父文檔進行切換。 fs.chunks
文檔中的files_id
字段將該塊鏈接到其父塊。
以下是fs.files
集合的示例文檔 -
{
"filename": "test.txt",
"chunkSize": NumberInt(261120),
"uploadDate": ISODate("2018-04-13T11:32:33.557Z"),
"md5": "7b762939321e146569b07f72c62cca4f",
"length": NumberInt(646)
}
文檔指定文件名,塊大小,上傳的日期和長度。
以下是fs.chunks
文檔的示例文檔 -
{
"files_id": ObjectId("595b99d9f6a6243715b3c312"),
"n": NumberInt(0),
"data": "Mongo Binary Data"
}
將文件添加到GridFS
現在,使用put
命令存儲一個使用GridFS的mp3文件。 爲此,我們將使用MongoDB安裝文件夾的bin文件夾中出現的mongofiles.exe
工具程序。
打開命令提示符,導航到MongoDB安裝文件夾的bin文件夾中的mongofiles.exe
,然後鍵入以下代碼 -
D:\Program Files\MongoDB\Server\3.4\bin> mongofiles.exe -d gridfs put song.mp3
這裏,gridfs
是要存儲文件的數據庫的名稱。 如果數據庫不存在,MongoDB將自動創建一個新的文檔。 song.mp3
是上傳文件的名稱。 要在數據庫中查看文件的文檔,可以使用查詢查詢 -
> db.fs.files.find()
上述命令返回以下文檔 -
{
_id: ObjectId('595b99d9f6a6243715b3c316'),
filename: "song.mp3",
chunkSize: 381120,
uploadDate: new Date(1398391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",
length: 10401959
}
還可以使用以前查詢中返回的文檔ID,查看與存儲文件相關的fs.chunks
集合中存在的所有塊,並使用以下代碼:
>db.fs.chunks.find({files_id:ObjectId('595b99d9f6a6243715b3c316')})
在這個示例中,查詢返回50
多個文件,表示整個mp3
文件被分成50
個數據塊。