GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。spa
GridFS 也是文件存储的一种方式,可是它是存储在MonoDB的集合中。code
GridFS 能够更好的存储大于16M的文件。GridFS 会将大文件对象分割成多个小的chunk(文件片断),通常为256k/个, 每一个chunk将做为MongoDB的一个文档(document)被存储在chunks集合中。视频
GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。对象
每一个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。图片
如下是简单的 fs.files 集合文档:md5
{ "filename": "test.txt", "chunkSize": NumberInt(261120), "uploadDate": ISODate("2014-04-13T11:32:33.557Z"), "md5": "7b762939321e146569b07f72c62cca4f", "length": NumberInt(646) }
如下是简单的 fs.chunks 集合文档:文档
{ "files_id": ObjectId("534a75d19f54bfec8a2fe44b"), "n": NumberInt(0), "data": "Mongo Binary Data" }