【问题标题】:C/C++ Example for GridFS implementation in MongoDBMongoDB 中 GridFS 实现的 C/C++ 示例
【发布时间】:2013-10-29 13:35:43
【问题描述】:

刚开始在 mongodb 上构建一个用于文件保存和检索的应用程序,发现它有一个用于此目的的标准规范,名为 GridFS 。但不幸的是,我在 C/C++ 中找不到任何启动示例。如果有人知道与它相关的任何事情,请给我指导。

编辑:

我读到对于存储大于 16MB 的文件,使用了 GridFS,那么小于 16MB 的文件怎么办?..我无法获得任何相关信息。对于较小的尺寸,我是否需要使用其他进程或相同的 GridFs?

谢谢

【问题讨论】:

    标签: mongodb gridfs


    【解决方案1】:

    GridFS 可以通过mongo::GridFS 类访问。 API 非常不言自明。

    或者,您可以将文件的二进制数据作为 BSON BinData 类型嵌入到普通文档中。 mongo::BSONObjBuilder 具有 appendBinData 方法可以将具有二进制内容的字段添加到文档中。

    GridFS 存在的原因是每个文档有 16MB 的上限。当您要存储大于 16MB 的数据时,需要将其拆分为多个文档。 GridFS 是一种自动处理此问题的抽象,但它也可用于较小的文件。

    一般来说,您不应该将两种技术混合用于相同的内容,因为它只会让事情变得更复杂而没有什么好处。当您可以保证您的数据不会接近 16MB 时,请使用嵌入。当您偶尔有大于 16MB 的内容时,即使文件小于 16MB,您也应该使用 GridFS。

    【讨论】:

    • 请记住,大型文档必须一次性反序列化,读取 16MB 需要相当长的时间。因此,GridFS 的默认块大小仅为 250kB,因此您可以更有效地流式传输数据。
    • 你们能帮帮我吗....stackoverflow.com/questions/19629753/…
    猜你喜欢
    • 1970-01-01
    • 2015-04-28
    • 2014-06-27
    • 2020-12-06
    • 2010-09-18
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    相关资源
    最近更新 更多