刚开始在 mongodb 上构建一个用于文件保存和检索的应用程序,发现它有一个用于此目的的标准规范,名为 GridFS 。但不幸的是,我在 C/C++ 中找不到任何启动示例。如果有人知道与之相关的任何事情,请给我指导。
编辑:
我读到对于存储大于 16MB 的文件,使用了 GridFS,那么小于 16MB 的文件怎么办?..我无法获得任何有关它的信息。对于较小的尺寸,我是否需要使用其他进程或相同的 GridF?
谢谢
GridFS 可以通过类访问mongo::GridFS
。API 非常不言自明。
或者,您可以将文件的二进制数据作为 BSON BinData 类型嵌入到普通文档中。mongo::BSONObjBuilder
具有方法appendBinData将具有二进制内容的字段添加到文档。
GridFS 存在的原因是每个文档有 16MB 的上限。当您要存储大于 16MB 的数据时,需要将其拆分为多个文档。GridFS 是一种自动处理此问题的抽象,但它也可用于较小的文件。
一般来说,你不应该为相同的内容混合两种技术,因为它只会让事情变得更复杂而没有什么好处。当您可以保证您的数据不会接近 16MB 时,请使用嵌入。当您偶尔有大于 16MB 的内容时,您应该使用 GridFS,即使是小于该大小的文件。