MongoDB对象大小插入问题C#
Posted
技术标签:
【中文标题】MongoDB对象大小插入问题C#【英文标题】:MongoDB object size insertion issue C# 【发布时间】:2022-01-08 23:01:48 【问题描述】:我的问题是我们正在尝试将文档插入 MongoDB,它似乎超过了 16 MB 的大小限制。现在,我们可以调试并查看聚合到完整对象本身的内容,但我不知道如何查看嵌套文档的哪一部分相当于 C# 中的大文件大小。
有谁知道实现这一目标的方法吗?
提前致谢。
/每
【问题讨论】:
这不会回答您的问题,但是,如果您知道您的文档将是“大”的,那么不要使用 MongoDB 来存储它。将对象数据存储为系统文件和可单独请求的 mongo 存储文件位置。 【参考方案1】:Mongo 提供了一种处理大于 16 MB 的文档的方法,称为 gridfs,但有一些限制。简而言之,它将您的输入文档分成多个块并管理它的工作。 要在序列化后获取实体的大小,可以试试这个:
var byteArrayLength = new TestEntity().ToBson().Length;
【讨论】:
【参考方案2】:MongoDB 将所有数据存储为 JSON 文档。并且 16MB 的限制被算作一个修剪过的 JSON 文件,没有不必要的缩进。
要获得相同的结果,请使用 MongoDB 序列化程序将对象解析为 JSON,或使用 Json.NET 等外部序列化程序。
然后检查此 JSON 文档或对其进行一些计算,以了解文档的每个部分中有多少个字符,并根据您的架构采取相应措施,以将此文档减少到限制以下或...
...不要使用 MongoDB 来存储它。将对象数据存储为系统文件和可单独请求的 mongo 存储文件位置。
【讨论】:
以上是关于MongoDB对象大小插入问题C#的主要内容,如果未能解决你的问题,请参考以下文章