在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ GridFS
更新文檔
GridFS
Rockmongo 管理工具
Map Reduce
Java
創(chuàng)建備份
數(shù)據(jù)模型
創(chuàng)建數(shù)據(jù)庫
映射
查詢文檔
索引限制
ObjectId
刪除文檔
數(shù)據(jù)類型
高級索引
索引
優(yōu)勢
記錄排序
查詢分析
插入文檔
刪除集合
全文檢索
創(chuàng)建集合
概述
數(shù)據(jù)庫引用
覆蓋索引查詢
安裝環(huán)境
PHP
刪除數(shù)據(jù)庫
固定集合
關(guān)系
聚合
自動增長
復(fù)制
限制記錄
部署
分片
正則表達(dá)式
原子操作

GridFS

GridFS 簡介

GridFS 是 MongoDB 的一個用來存儲/獲取大型數(shù)據(jù)(圖像、音頻、視頻等類型的文件)的規(guī)范。它相當(dāng)于一個存儲文件的文件系統(tǒng),但它的數(shù)據(jù)存儲在 MongoDB 的集合中。GridFS 能存儲超過文檔尺寸限制(16 MB)的文件。

GridFS 將文件分解成塊,將每塊數(shù)據(jù)保存在不同的文檔中,每塊大小最高為 255 KB。

GridFS 默認(rèn)使用 fs.filesfs.chunks 集合來存儲文件的元數(shù)據(jù)和塊。每個塊都由唯一的 _id ObjectId 字段來標(biāo)識。fs.files 用作父級文檔。fs.chunks 文檔中的 files_id 字段將塊連接到父級文檔上。

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 添加文件

下面我們將使用 put 命令,利用 GridFS 存儲一個 mp3 文件。該例中,我們將使用 MongoDB 的 bin 文件夾下的 mongofiles.exe 工具。

打開命令行提示符,瀏覽至 mongofiles.exe,輸入下列代碼:

>mongofiles.exe -d gridfs put song.mp3

上述代碼中,gridfs 是保存文件所在的數(shù)據(jù)庫名稱。如果數(shù)據(jù)庫不存在,MongoDB 將自動創(chuàng)建一個新數(shù)據(jù)庫,Song.mp3 是上傳文件名。要想查看數(shù)據(jù)庫中文件的文檔,使用 find() 查詢:

>db.fs.files.find()

返回結(jié)果文檔如下所示:

{
   _id: ObjectId('534a811bf8b4aa4d33fdf94d'), 
   filename: "song.mp3", 
   chunkSize: 261120, 
   uploadDate: new Date(1397391643474), md5: "e4f53379c909f7bed2e9d631e15c1c41",
   length: 10401959 
}

我們還可以查看 fs.chunks 集合中所有與存儲文件相關(guān)的塊。代碼如下,其中使用了上次查詢所返回的文檔 id。

>db.fs.chunks.find({files_id:ObjectId('534a811bf8b4aa4d33fdf94d')})

該例中,查詢返回了 40 個文檔,這就是說整個 Mp3 文件被分解成了 40 個數(shù)據(jù)塊。

上一篇:插入文檔下一篇:查詢文檔