MongoDB数据库学习-聚集-聚集管道的限制。
聚集管道的限制
用aggregate命令的聚集操作有如下限制:
结果大小限制
版本2.6的改动。
从MongoDB 2.6起,aggregate命令可以返回一个游标,或者把结果保持在集合里。当返回一个游标或者把结果保存在集合中时,结果集中的每一个文档的大小受限于BSON文档大小,当前是16M。如果有单个文档超出BSON文档大小限制,该命令会产生一个错误。该限制只适用于返回的文档,在管道处理过程中,文档可以超出这个大小。从MongoDB 2.6起,db.collection.aggregate()默认返回一个游标。
如果不指定游标选项,或者把结果保存在一个集合中,aggregate命令返回单个包含了结果集所有字段的BSON文档。这样的化,如果结果集的大小超出了BSON文档大小限制,该命令就会产生一个错误。
早期版本的aggregate命令只能返回一个包含结果集的BSON文档,如果结果集的总大小超出了BSON文档大小限制,将会产生一个错误。
内存限制
版本2.6的改动。
管道阶段有内存大小100M的限制。如果有一个阶段超出了这个限制,MongoDB将会产生一个错误。要处理大的数据集,使用allowDiskuse选项来允许聚集管道阶段把数据写入到临时文件中。