当返回的doc在聚合中超过16MB时,我应该使用allowDiskUse选项吗?
或者我应该改变数据库结构或代码逻辑以避免限制?'allowDiskUse'的优点和缺点是什么?谢谢你的帮助.
她是我见过的官方文档:结果大小限制
在2.6版中更改.
从MongoDB 2.6开始,aggregate命令可以返回游标或将结果存储在集合中.返回游标或将结果存储在集合中时,结果集中的每个文档都受BSON文档大小限制,目前为16兆字节; 如果任何单个文档超出BSON文档大小限制,该命令将产生错误.该限制仅适用于退回的文件; 在管道处理期间,文档可能超过此大小.
内存限制
在2.6版中更改.
管道阶段的RAM限制为100兆字节.如果某个阶段超过此限制,MongoDB将产生错误.要允许处理大型数据集,请使用allowDiskUse选项启用聚合管道阶段以将数据写入临时文件. https://docs.mongodb.com/manual/core/aggregation-pipeline-limits/
例如,在第1页我发出:
test.info ?1;
Run Code Online (Sandbox Code Playgroud)
然后在第2页:
echo $_REQUEST['test.info'];
echo $_REQUEST['test_info'];
Run Code Online (Sandbox Code Playgroud)
第一个为null,第二个为1,它更改为test_info
我只是不知道$ key改变的原因.