如何在MongoDB中存储文件


How to store files in MongoDB?

我被告知MongoDB使用GridFS文件系统来存储文件。但是,是否有任何方法可以通过序列化或base64编码将文件本身存储在数据库BSON结构中?

感谢并感谢您的帮助。

当然,您可以将文件序列化为字符串并将其存储在文档字段中。但在这种方法中有一个缺点——所有的文件都应该<然后是16mb(一个文档的大小限制)。

Mongodb-gridfs构建在Mongodb集合之上,包含两个集合:

  1. Files--文件的元数据(名称、大小、id、要保存的任何其他信息)
  2. Chunks——包含序列化的文件体的集合。如果文件大小超过16 mb限制,mongodb会自动创建额外的块。因此,任何文件都将作为一个文件文档和>=1个区块文档持久化在mongodb中

您可以在这里查看mongodb中的文件外观。

因此,如果您决定将文件存储在mongodb中,最好使用通用的、经过社区测试的方法gridfs。

GridFS是普通mongo集合之上的一个薄层,因此文件内容("自身")被存储为BSON。GridFS(BSON最终)以二进制形式存储文件,您想获得二进制内容,对其进行base64编码,并以二进制形式进行存储吗?你为什么要那样做?