有一个带有数组的文档,其大小超过16 MB。如何存储此文档以便能够从此数组中查询某些数据。
答案 0 :(得分:4)
当你有超过16MB限制的文档时,你很可能采用MongoDB的非规范化方法太过分,并且应该考虑为每个数组条目创建另一个包含一个文档的集合(或者为每个明智的数组条目分组创建一个文档)。
另一种选择是将内容视为二进制数据并将其存储为GridFS中的文件,但是您将无法对其内容进行任何有意义的查询(仅针对您为其编写的元数据)它单独)。
16MB限制是硬编码的。您无法通过配置更改它。有a bugtracker ticket for that,它被关闭为“无法修复”。但考虑到MongoDB是开源的,您可以随时在源代码中更改它。当你这样做时,请记住许可条件。