日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

MongoDB(四)——GridFS

發(fā)布時(shí)間:2024/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MongoDB(四)——GridFS 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

GridFS

MongoDB的一個(gè)重要子模塊,可基于MongoDB來(lái)持久存儲(chǔ)文件,并且支持分布式存儲(chǔ)和讀取。

持久存儲(chǔ):對(duì)應(yīng)瞬時(shí)數(shù)據(jù)如內(nèi)存,指保存到數(shù)據(jù)庫(kù)中,能持久保存。
分布式存儲(chǔ):將數(shù)據(jù)分散地存儲(chǔ)于多個(gè)位置。

存在的意義

MongoDB采用BSON格式存儲(chǔ)數(shù)據(jù),對(duì)數(shù)據(jù)的大小限制為16M,但是在實(shí)際的系統(tǒng)開發(fā)中,上傳的圖片或文件可能尺寸會(huì)很大,此時(shí)可以使用MongoDB中的GridFS解決,通常用來(lái)處理大文件的存儲(chǔ)。

存儲(chǔ)原理

GridFS使用兩個(gè)集合來(lái)存儲(chǔ)文件:

  • fs.chunks:存儲(chǔ)文件的二進(jìn)制數(shù)據(jù)(一個(gè)文件有一到多條數(shù)據(jù))
  • fs.files:存儲(chǔ)文件的元數(shù)據(jù)(一個(gè)文件只有一條數(shù)據(jù))

元數(shù)據(jù):用來(lái)描述數(shù)據(jù)的數(shù)據(jù),如數(shù)據(jù)大小、創(chuàng)建時(shí)間、文件名、格式類型等。

存儲(chǔ)數(shù)據(jù)

當(dāng)一個(gè)文件存儲(chǔ)到GridFS時(shí),如果文件大于chunksize(一個(gè)chunk的大小,256KB),會(huì)將文件按照chunk的大小分割成多個(gè)chunk塊,最終將chunk塊的信息存儲(chǔ)在fs.chunks集合的多個(gè)文檔中,然后將文件信息存儲(chǔ)在fs.files集合的唯一一份文檔中。

讀取文件

先根據(jù)查詢條件在fs.files集合中找到對(duì)應(yīng)的文檔,得到_id字段,在查詢對(duì)應(yīng)fs.chunks集合中所有files_id和_id相同的文檔,最后根據(jù)n字段的順序讀取chunk的data字段二進(jìn)制數(shù)據(jù),還原文件。

使用GridFS

mongofiles是GridFS的實(shí)用工具,用于管理GridFS文件,在MongoDB安裝目錄下的bin目錄中,可在命令行直接使用。

上傳文件mongogiles put 文件名


生成的fs.files:

生成的fs.chunks:(我上傳的file.mov共750KB,分成了3個(gè)chunk)

列出文件mongofiles list

下載文件mongofiles get 文件名

刪除文件mongofiles delete 文件名


  • GridFS詳述
  • Node.js中使用GridFS

總結(jié)

以上是生活随笔為你收集整理的MongoDB(四)——GridFS的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。