MongoDb 聚合报错
聚合框架它是数据聚合的一个新框架,其概念类似于数据处理的管道。 每个文档通过一个由多个节点组成的管道,每个节点有自己特殊的功能(分组、过滤等),文档经过管道处理后,最后输出相应的结果。
管道基本的功能有两个:
一是对文档进行“过滤”,也就是筛选出符合条件的文档;
二是对文档进行“变换”,也就是改变文档的输出形式。
errmsg:Exceeded memory limit for $group,but didn't allow external Sort.Pass allowDiskuse:true
错误详细信息:

我这次用的表的数据量是:大约有四百万数据

我要查的是:用户接受信息最多的前五个用户

写完分析语句,严格按照语法写的;
既然出现问题,我们来一下Debug(咱们码农有力量)
如果管道没有给出预期结果,就需要进行调试,调试时,可以先只指定第一个管道操作符,如果这样得到了预期结果,那就再指定第二个管道操作符,以上面的例子说,先试着$project 操作符进行聚合,如果这个操作符结果是有效的,就在添加 $group 操作符,
如果结果还是有效的,就再添加 $sort,最后再添加 $limit 操作符,这样就可以逐步定位到造成问题的操作符了。

逐步调试发现没问题 不是语法的错误
麻蛋,原因是聚合的结果必须要限制在16M以内操作,(mongodb支持的最大影响信息的大小),否则必须放在磁盘中做缓存(allowDiskUse=True)。

最后把要统计的数据给搞出来了,喜大普奔。。。。
MongoDb 聚合报错的更多相关文章
- 树莓派 mongodb 安装&报错处理
树莓派 mongodb 安装&报错处理 编译过的源码下载地址: http://files.cnblogs.com/files/xueshanshan/mongodb-rpi.zip addus ...
- 关于express 连接 mongodb数据库报错
关于express 连接 mongodb数据库报错 nodejs DeprecationWarning: current URL string parser is deprecated, and wi ...
- MongoDB启动报错 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 【转】
之前MongoDB启动的时候是蛮正常的,不知道后来启动报错了,就把粘贴出来查询了.最后才知道是由于自己不正常的关闭导致的这个情况. --摘录:MongoDB非正常关闭后修复记录 mongod没有后台执 ...
- MongoDB启动报错
启动mongodb的时候报错: [root@localhost bin]# ./mongod --dbpath /usr/java/mongoNode/data/db --logpath /usr/j ...
- ES聚合报错
在测试Elasticsearch聚合的时候报了一个错误.具体如下: GET /megacorp/employee/_search { "aggs": { "all_int ...
- MongoDB 启动报错
1.配置MongoDB ls /etc/mongod.conf 可以根据此配置文件启动 或者根据自己需求进行配置文件的变更 重要提醒: 如果变更MongoDB配置文件中:日志与数据文件目录,那么要把这 ...
- Elasticsearch 6.2.3版本 执行聚合报错 Fielddata is disabled on text fields by default
背景说明 执行<Elasticsearch 权威指南>的示例,在执行聚合查询的时候,报错 Fielddata is disabled on text fields by default. ...
- MongoDB启动报错:Unrecognized option: storage try 'mongod --help' for more information(已解决)
问题说明: 今天在使用配置文件方式启动MongoDB时,一直启动失败,报错显示:Unrecognized option: storage try 'mongod --help' for more in ...
- Serilog记录MongoDB日志报错:requires the binary sub type to be UuidLegacy, not UuidStandard
Serilog Serilog是.NET开源结构化日志类库 开源地址:https://github.com/serilog 官网:https://serilog.net/ Serilog能做什么: 记 ...
随机推荐
- 【HDU】1850 Being a Good Boy in Spring Festival
http://acm.hdu.edu.cn/showproblem.php?pid=1850 题意:同nim...顺便求方案数... #include <cstdio> #include ...
- Android --ToggleButton的使用
1. 效果图
- twitter通过oAuth验证获取json数据
protected void Page_Load(object sender, EventArgs e) { var oAuthConsumerKey = "你的key"; var ...
- 解决redhat linux下IP地址可以ping通,域名无法ping通问题
解决redhat linux下IP地址可以ping通,域名无法ping通 在/etc/resolv.conf中添点东西 格式如下: nameserver xxx.xxx.xxx.xxx nameser ...
- 放弃iOS4,拥抱iOS5
前言 苹果在2011年的WWDC大会上发布了iOS5,不过考虑到要支持iOS4.x的系统,大多数App都无法使用iOS5的新特性.现在将近1年半过去了,从我们自己的App后台的统计数据.一些第三方 ...
- android夜间模式实现
一.概述 android夜间模式实现分为两大类 重启activity的实现 不重启activity的实现 二.正文 1.重启activity实现夜间模式[在界面文件中的实现部分] 1.1在attrs. ...
- [LintCode] Scramble String 爬行字符串
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...
- Android:理解Fragment
最近都在公司搞测试,静不下心来学android.今天就把Fragment搞懂吧. Fragment的几点要点: 1.用于大屏幕平板,容纳更多组件,可复用2.Fragment必须嵌入Activity中 ...
- HDU 2955
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- javascript平时小例子③(setInterval使用1)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...