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中的数据