gridfs是用于存储和检索超过BSON文档大小限制16 MB的文件的规范。

gridfs不将文件存储在单个文档中,而是将文件分为多个部分或块[1],并将每个块存储为单独的文档。默认情况下,gridfs使用默认块大小255 kb;也就是说,gridfs将文件划分为255 kb的块,最后一个块除外。最后一个块只有在必要的时候才那么大。类似地,不大于块大小的文件只有最后一个块,只使用所需的空间加上一些额外的元数据。

gridfs使用两个集合来存储文件。一个集合存储文件块,另一个集合存储文件元数据。gridfs集合一节详细描述了每个集合。

当您为一个文件查询gridfs时,驱动程序将根据需要重新组装块。可以对通过gridfs存储的文件执行范围查询。您还可以从文件的任意部分访问信息,例如“跳过”到视频或音频文件的中间。

gridfs不仅可用于存储超过16MB的文件,还可用于存储任何您希望访问的文件,而无需将整个文件加载到内存中。

在第一次将数据上载到gridfs存储桶时,gridfs将自动为文件和块集合创建索引。