GridFS是用来解决大文件(>16M)存储问题,因为mongo的BSON格式的document最大支持就是16M
使用GridFS,在存储文件之后,你会看到两张表:fs.files和fs.chunks
为了突破单个文档的存储限制,GridFS的做法是将文件切分成一个个的chunk存储。fs.files只存储文件的基本信息
真正的文件数据存在fs.chunks中
GridFS默认将文件切分为每个255K大小的chunk。
比如我上传了一个119M的压缩文件。
看下最后用了470个chunk。470*255 = 119850K
看一下fs.files的数据结构
{ "_id" : ObjectId("5c8f0d788279cf2a7ca422bb"), "filename" : "test.rar", :文件名 "aliases" : null, :别名,非必须 "chunkSize" : NumberLong(261120),:表示每个chunk的大小。261120就是255K "uploadDate" : ISODate("2019-03-18T03:16:08.082Z"),:上传时间 "length" : NumberLong(122144297),:上传的文件大小,单位是byte "contentType" : "rar