mongo fs.chunks, fs.files

GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。

GridFS 也是文件存储的一种方式,但是它是存储在MongoDB的集合中。

GridFS 可以更好的存储大于16M的文件。

GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被存储在chunks集合中。

 

GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。

 

每个文件的实际内容被存在chunks(二进制数据)中,

和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。

 

以下使用mongoCompass工具查询,该文件分成 1个区块。

 

 

fs.chunks集合中多个文档中的file_id字段对应fs.files集中文档”_id”字段

fs.chunks 集合存储文件文件内容的二进制数据,以类json格式文档形式存储。每在GridFS存储一个文件,GridFS就会将文件内容按照chunksize大小(chunk容量为256k)分成多个文件块,然后将文件块按照类json格式存在.chunks集合中,每个文件块对应fs.chunk集合中一个文档。一个存储文件会对应一到多个chunk文档。

 

 

{files_id:ObjectId('5ee738a833e9a2601ec1fcb8')} 根据file中的id查询chunks中的数据

 

 

参考:https://www.runoob.com/mongodb/mongodb-gridfs.html

posted @ 2022-03-10 17:44  ni当像鸟飞往你的山  阅读(1452)  评论(0编辑  收藏  举报