'Document constructed by $facet exceeds the limit' with allowDiskUse:true



我目前正在使用mongoDb v4.4和Mongoose v5.10。在我的Aggregation查询中,通过$facet获得极限超出错误,该查询使用allowDiskUse: true选项提供了大量响应。

MongoError: document constructed by $facet is 104859602 bytes, which exceeds the limit of 104857600 bytes

它一直运行良好,直到我在mongoDb v3.4和Mongoose v4.13上获得了巨大的结果。

在使用facets创建聚合管道并使用aggregate.allowDiskUse(true)之后,mongo查询日志确实显示了带有allowDiskUse标志的查询为true,但仍然出现错误。

因为此$facet阶段超过了16兆字节的BSON文档大小限制。

参考$facet考虑因素:

$facet阶段的输出受16兆字节BSON文档大小限制。如果$facet阶段的结果超过BSON文档大小限制,则聚合会产生错误。


在您的情况下,此配置命令可能会帮助

db.adminCommand({setParameter: 1, internalQueryFacetBufferSizeBytes: BIGGER_THAN_100MB })

最新更新