我目前正在使用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 })