翻译或纠错本页面
聚合管道的限制
使用 aggregate 命令执行的聚合操作有以下限制:
结果集大小限制
如果 aggregate 命令返回了一个包含所有结果集的文档,并且文档大小超过 BSON文档大小 最大值16MB,该命令就会报错。如果需要突破这个限制返回任意大小的结果集, 可以让 aggregate 命令返回一个游标或者把结果存入集合。
在 2.6 版更改: 可以让 aggregate 命令返回一个游标,或者把结果集存入一个集合中,这样就和BSON文档大小限制没有关系了。因此使用 aggregate 命令返回一个游标,就可以返回任意大小的结果集了。
内存限制
管道的每个步骤可以使用的内存最多是100MB。如果某个步骤超过了这个限制,MongoDB就会报错了。如果需要处理大量数据,可以使用 allowDiskUse 这个选项,此时管道会把数据写入临时文件。