【发布时间】:2012-02-16 19:44:30
【问题描述】:
有人告诉我 MongoDB 使用 GridFS 文件系统来存储文件。但是,有没有办法通过序列化或base64编码将文件本身存储在数据库BSON结构中?
感谢并感谢任何帮助。
【问题讨论】:
-
序列化文件?这是什么意思?
有人告诉我 MongoDB 使用 GridFS 文件系统来存储文件。但是,有没有办法通过序列化或base64编码将文件本身存储在数据库BSON结构中?
感谢并感谢任何帮助。
【问题讨论】:
GridFS 是普通 mongo 集合之上的一个薄层,因此文件内容('它们自己')正在存储为 BSON。 GridFS(最终是 BSON)以二进制形式存储文件,您想获取二进制内容,对它们进行 base64 编码,然后以二进制形式存储?为什么要这么做?
【讨论】:
当然,您可以将文件序列化为字符串并将其存储在文档字段中。但是在这种方法中存在一个缺点 - 您的所有文件都应该 size limit)。
Mongodb gridfs 建立在 mongodb 集合之上,包含两个集合:
你可以查看here文件在mongodb中的样子。
因此,如果您决定将文件存储在 mongodb 中,最好使用经过社区方法测试的 common - gridfs。
【讨论】: