首页/数据/NoSQL 速查/allowDiskUse 与聚合内存限制
MongoDB99 条

allowDiskUse 与聚合内存限制

聚合各阶段默认内存上限 100MB:超限报错时显式传 allowDiskUse:true 让阶段落盘,或先重构管道降低中间结果体积。

NoSQL 速查数据更新于 2026-10-12
默认上限每阶段 100MB
落盘aggregate(pipeline, { allowDiskUse: true })
其它选项maxTimeMS / collation / readConcern

示例

示例
db.orders.aggregate([
  { $group: { _id: "$sku", total: { $sum: "$qty" } } }
], { allowDiskUse: true })
落盘是兜底手段:排序与分组数据量越大磁盘 IO 越重,优先减小进入重阶段的文档量。

易错点

  • allowDiskUse 只是放行,不会提示哪里超限;结合 explain 找到体量最大的阶段再优化

数据来源与参考

  • MongoDB Manual: Aggregation Pipeline Limits
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌