最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB學習筆記之GridFS使用介紹

 更新時間:2015年07月04日 15:35:11   投稿:junjie  
這篇文章主要介紹了MongoDB學習筆記之GridFS使用介紹,本文介紹了GridFS的作用、GridFS的一些使用方法、GridFS實現(xiàn)原理及注意事項等,需要的朋友可以參考下

GridFS簡介

GridFS是MongoDB中的一個內(nèi)置功能,可以用于存放大量小文件。

GridFS使用

MongoDB提供了一個命令行工具mongofiles可以來處理GridFS,

列出所有文件:

復(fù)制代碼 代碼如下:

mongofiles list

上傳一個文件:
復(fù)制代碼 代碼如下:

mongofiles put xxx.txt

下載一個文件:
復(fù)制代碼 代碼如下:

mongofiles get xxx.txt

查找文件:
復(fù)制代碼 代碼如下:

//會查找所有文件名中包含“xxx”的文件
mongofiles search xxx
//會查找所有文件名以“xxx”為前綴的文件
mongofiles list xxx

參數(shù)說明:
–d 指定數(shù)據(jù)庫 ,默認是fs,Mongofiles list –d testGridfs
-u –p 指定用戶名,密碼
-h 指定主機
-port 指定主機端口
-c 指定集合名,默認是fs
-t 指定文件的MIME類型,默認會忽略
GridFS實現(xiàn)原理

GridFS在數(shù)據(jù)庫中,默認使用fs.chunks和fs.files來存儲文件。
其中fs.files集合存放文件的信息,fs.chunks存放文件數(shù)據(jù)。

一個fs.files集合中的一條記錄內(nèi)容如下,即一個file的信息如下:

復(fù)制代碼 代碼如下:

{
"_id" : ObjectId("4f4608844f9b855c6c35e298"),       //唯一id,可以是用戶自定義的類型
"filename" : "CPU.txt",      //文件名
"length" : 778,      //文件長度
"chunkSize" : 262144,    //chunk的大小
"uploadDate" : ISODate("2012-02-23T09:36:04.593Z"), //上傳時間
"md5" : "e2c789b036cfb3b848ae39a24e795ca6",      //文件的md5值
"contentType" : "text/plain"     //文件的MIME類型
"meta" : null    //文件的其它信息,默認是沒有”meta”這個key,用戶可以自己定義為任意BSON對象
}

對應(yīng)的fs.chunks中的chunk如下:

復(fù)制代碼 代碼如下:

{
"_id" : ObjectId("4f4608844f9b855c6c35e299"),    //chunk的id
"files_id" : ObjectId("4f4608844f9b855c6c35e298"),  //文件的id,對應(yīng)fs.files中的對象,相當于fs.files集合的外鍵
"n" : 0,     //文件的第幾個chunk塊,如果文件大于chunksize的話,會被分割成多個chunk塊
"data" : BinData(0,"QGV...")     //文件的二進制數(shù)據(jù),這里省略了具體內(nèi)容
}

默認chunk的大小是256K。
所以在把文件存入到GridFS過程中,如果文件大于chunksize,則把文件分割成多個chunk,再把這些chunk保存到fs.chunks中,最后再把文件信息存入到fs.files中。

在讀取文件的時候,先據(jù)查詢的條件,在fs.files中找到一個合適的記錄,得到“_id”的值,再據(jù)這個值到fs.chunks中查找所有“files_id”為“_id”的chunk,并按“n”排序,最后依次讀取chunk中“data”對象的內(nèi)容,還原成原來的文件。

注意事項

1.GridFS不自動處理md5相同的文件,對于md5相同的文件,如果想在GridFS中只有一個存儲,要用戶自已處理。Md5值的計算由客戶端完成。
2.因為GridFS在上傳文件過程中是先把文件數(shù)據(jù)保存到fs.chunks,最后再把文件信息保存到fs.files中,所以如果在上傳文件過程中失敗,有可能在fs.chunks中出現(xiàn)垃圾數(shù)據(jù)。這些垃圾數(shù)據(jù)可以定期清理掉。

相關(guān)文章

  • MongoDB 管道的介紹及操作符實例

    MongoDB 管道的介紹及操作符實例

    這篇文章主要介紹了MongoDB 管道的介紹及操作符實例的相關(guān)資料,MongoDB的聚合管道將MongoDB文檔在一個管道處理完畢后將結(jié)果傳遞給下一個管道處理,需要的朋友可以參考下
    2017-07-07
  • 如何使用Docker安裝一個MongoDB最新版

    如何使用Docker安裝一個MongoDB最新版

    這篇文章主要介紹了如何使用Docker安裝一個MongoDB最新版,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • mongodb 中rs.stauts()命令參數(shù)解析

    mongodb 中rs.stauts()命令參數(shù)解析

    MongoDB的rs.status()命令是查看副本集狀態(tài)的重要工具,它可以展示副本集中各個成員的角色、健康狀態(tài)、同步進度等關(guān)鍵信息,本文介紹mongodb 中rs.stauts()命令參數(shù)解析,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • MongoDB中的常用操作$push、$pushAll和$pull示例詳解

    MongoDB中的常用操作$push、$pushAll和$pull示例詳解

    MongoDB從2.2版本開始支持$push操作符,$push是用于在數(shù)組中添加一個元素的更新操作符,它將指定的值追加到數(shù)組的末尾,本文給大家介紹MongoDB的常用操作$push、$pushAll和$pull,感興趣的朋友一起看看吧
    2023-12-12
  • MongoDB條件操作符的具體使用

    MongoDB條件操作符的具體使用

    MongoDB的條件操作符主要分為比較操作符、邏輯操作符、元素操作符、數(shù)組操作符、文本搜索操作符等幾種類型,本文就詳細的介紹一下這幾種類型的操作,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • NoSQL優(yōu)缺點與MongoDB數(shù)據(jù)庫簡介

    NoSQL優(yōu)缺點與MongoDB數(shù)據(jù)庫簡介

    這篇文章介紹了NoSQL的優(yōu)缺點與MongoDB數(shù)據(jù)庫,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • MongoDB集合中的文檔管理

    MongoDB集合中的文檔管理

    這篇文章介紹了MongoDB集合中文檔的管理方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • MongoDb CPU利用率過高問題如何解決

    MongoDb CPU利用率過高問題如何解決

    這篇文章主要介紹了MongoDb CPU利用率過高問題如何解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • mongodb 數(shù)據(jù)庫操作--備份 還原 導(dǎo)出 導(dǎo)入

    mongodb 數(shù)據(jù)庫操作--備份 還原 導(dǎo)出 導(dǎo)入

    mongodb數(shù)據(jù)備份和還原主要分為二種,一種是針對于庫的mongodump和mongorestore,一種是針對庫中表的mongoexport和mongoimport。
    2014-07-07
  • 關(guān)于MongoDB索引管理-索引的創(chuàng)建、查看、刪除操作詳解

    關(guān)于MongoDB索引管理-索引的創(chuàng)建、查看、刪除操作詳解

    本文講述了關(guān)于MongoDB索引管理包括索引的創(chuàng)建、查看索引、刪除索引各方面的命令及使用方法
    2018-03-03

最新評論

溧水县| 博湖县| 上栗县| 舞钢市| 湾仔区| 濮阳县| 利津县| 南通市| 嘉祥县| 清远市| 卫辉市| 闽侯县| 梁山县| 舒城县| 巴彦县| 正定县| 久治县| 衢州市| 阳谷县| 永福县| 芦溪县| 鲜城| 望谟县| 徐闻县| 石台县| 巴林右旗| 墨江| 山东| 随州市| 遂川县| 祁连县| 治县。| 崇文区| 凤庆县| 应用必备| 观塘区| 中山市| 荥阳市| 苏尼特右旗| 仙桃市| 宝兴县|