如何处理数组大于 16MB 的 MongoDB 文档

mad*_*nul 5 mongodb

有一个带有数组的文档,其大小超过 16 MB。如何存储这个文档以便能够从这个数组中查询一些数据。

Phi*_*ipp 5

当您的文档超过 16MB 限制时,您很可能将 MongoDB 的非规范化方法走得太远,并且应该考虑为每个数组条目创建另一个包含一个文档的集合(或为每个合理的数组条目分组创建一个文档)。

另一种选择是将内容视为二进制数据并将其作为文件存储在GridFS 中,但是您将无法对其内容进行任何有意义的查询(仅针对您单独为其编写的元数据)。

16MB 限制是硬编码的。您不能通过配置更改它。有一个 bugtracker 票,它被关闭为“不会修复”。但考虑到 MongoDB 是开源的,您可以随时在源代码中更改它。执行此操作时,请记住许可条件。