【问题标题】:MongoDB object size insertion issue C#MongoDB对象大小插入问题C#
【发布时间】:2022-01-08 23:01:48
【问题描述】:

我的问题是我们正在尝试将文档插入 MongoDB,它似乎超过了 16 MB 的大小限制。现在,我们可以调试并查看聚合到完整对象本身的内容,但我不知道如何查看嵌套文档的哪一部分相当于 C# 中的大文件大小。

有谁知道实现这一目标的方法吗?

提前致谢。

/每

【问题讨论】:

  • 这不会回答您的问题,但是,如果您知道您的文档将是“大”的,那么不要使用 MongoDB 来存储它。将对象数据存储为系统文件和可单独请求的 mongo 存储文件位置。

标签: c# mongodb


【解决方案1】:

Mongo 提供了一种处理大于 16 MB 的文档的方法,称为 gridfs,但有一些限制。简而言之,它将您的输入文档分成多个块并管理它的工作。 要在序列化后获取实体的大小,可以试试这个:

var byteArrayLength = new TestEntity().ToBson().Length;

【讨论】:

    【解决方案2】:

    MongoDB 将所有数据存储为 JSON 文档。并且 16MB 的限制被算作一个修剪过的 JSON 文件,没有不必要的缩进。

    要获得相同的结果,请使用 MongoDB 序列化程序将对象解析为 JSON,或使用 Json.NET 等外部序列化程序。

    然后检查此 JSON 文档或对其进行一些计算,以了解文档的每个部分中有多少个字符,并根据您的架构采取相应措施,以将此文档减少到限制以下或...

    ...不要使用 MongoDB 来存储它。将对象数据存储为系统文件和可单独请求的 mongo 存储文件位置。

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 2019-01-17
      • 1970-01-01
      • 2014-07-18
      • 2020-01-31
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多