MongoDB $facet聚合结果超大小限制问题求助
MongoDB $facet 文档大小超限问题解析
错误原因
allowDiskUse 不覆盖单BSON文档大小限制:allowDiskUse的作用是允许聚合操作将中间计算数据写入磁盘,避免内存溢出,但它无法突破MongoDB单个BSON文档的最大尺寸限制(你的错误中显示限制为100MB)。$facet会把所有分面的聚合结果合并到同一个输出文档中,当数据库规模较大时,各分面返回的结果总和超出了这个单文档上限,就会触发错误。测试库数据量小,合并后的文档未达到阈值,因此可以正常运行。
$facet 的输出结构特性导致:$facet的设计逻辑是将多个独立聚合管道的结果打包到同一个文档的不同字段下,所有分面的结果都包含在这一个文档内。如果每个分面返回的结果集本身就很大(比如包含大量文档、长文本字段、多层嵌套结构),叠加后的总大小很容易触及单BSON文档的上限。
内容的提问来源于stack exchange,提问作者jasper
相关产品推荐
相关产品推荐

