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

MongoDB學(xué)習(xí)筆記之GridFS使用介紹

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

GridFS簡(jiǎn)介

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

GridFS使用

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

列出所有文件:

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

mongofiles list

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

mongofiles put xxx.txt

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

mongofiles get xxx.txt

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

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

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

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

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

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

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

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

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

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

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

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

注意事項(xiàng)

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

相關(guān)文章

  • MongoDB 管道的介紹及操作符實(shí)例

    MongoDB 管道的介紹及操作符實(shí)例

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

    如何使用Docker安裝一個(gè)MongoDB最新版

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

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

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

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

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

    MongoDB條件操作符的具體使用

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

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

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

    MongoDB集合中的文檔管理

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

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

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

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

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

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

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

最新評(píng)論

霸州市| 紫金县| 蛟河市| 平远县| 昌图县| 新密市| 雷州市| 康乐县| 虹口区| 南京市| 内丘县| 阳原县| 石家庄市| 邵阳县| 内丘县| 福清市| 澳门| 克什克腾旗| 柘荣县| 兰西县| 博乐市| 凯里市| 寿光市| 永和县| 禄丰县| 武冈市| 平遥县| 贡觉县| 福清市| 叶城县| 昌乐县| 伽师县| 舒城县| 东乡族自治县| 乌兰浩特市| 丰城市| 江川县| 平凉市| 大新县| 伽师县| 静海县|