聚合管道限制

在本页面

aggregate命令的聚合操作具有以下限制。

结果大小限制

在 3.6 版中进行了更改:MongoDB 3.6 删除了aggregate命令的选项以将其结果作为单个文档返回。

aggregate命令可以返回游标或将结果存储在集合中。返回游标或将结果存储在集合中时,结果集中的每个文档都受BSON 文件大小限制(当前为 16 兆字节);如果任何单个文档超出BSON 文件大小限制,该命令将产生错误。该限制仅适用于退回的文件;在管道处理过程中,文档可能会超出此大小。 db.collection.aggregate()方法返回一个游标。

Memory Restrictions

管道阶段的 RAM 限制为 100 MiB(100 * 1024 * 1024 字节)。如果阶段超出此限制,则 MongoDB 将产生错误。为了处理大型数据集,您可以在aggregate()方法中设置allowDiskUse选项。 allowDiskUse选项使大多数聚合管道操作可以将数据写入临时文件。 allowDiskUse选项的 exception 是以下聚合操作;这些操作必须在内存限制限制内:

如果管道包含在aggregate()操作中观察到allowDiskUse: true的其他阶段,则allowDiskUse: true选项对这些其他阶段有效。