聚合框架它是数据聚合的一个新框架,其概念类似于数据处理的管道。 每个文档通过一个由多个节点组成的管道,每个节点有自己特殊的功能(分组、过滤等),文档经过管道处理后,最后输出相应的结果。

管道基本的功能有两个:

一是对文档进行“过滤”,也就是筛选出符合条件的文档;

二是对文档进行“变换”,也就是改变文档的输出形式。

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 聚合报错的更多相关文章

  1. 树莓派 mongodb 安装&报错处理

    树莓派 mongodb 安装&报错处理 编译过的源码下载地址: http://files.cnblogs.com/files/xueshanshan/mongodb-rpi.zip addus ...

  2. 关于express 连接 mongodb数据库报错

    关于express 连接 mongodb数据库报错 nodejs DeprecationWarning: current URL string parser is deprecated, and wi ...

  3. MongoDB启动报错 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 【转】

    之前MongoDB启动的时候是蛮正常的,不知道后来启动报错了,就把粘贴出来查询了.最后才知道是由于自己不正常的关闭导致的这个情况. --摘录:MongoDB非正常关闭后修复记录 mongod没有后台执 ...

  4. MongoDB启动报错

    启动mongodb的时候报错: [root@localhost bin]# ./mongod --dbpath /usr/java/mongoNode/data/db --logpath /usr/j ...

  5. ES聚合报错

    在测试Elasticsearch聚合的时候报了一个错误.具体如下: GET /megacorp/employee/_search { "aggs": { "all_int ...

  6. MongoDB 启动报错

    1.配置MongoDB ls /etc/mongod.conf 可以根据此配置文件启动 或者根据自己需求进行配置文件的变更 重要提醒: 如果变更MongoDB配置文件中:日志与数据文件目录,那么要把这 ...

  7. Elasticsearch 6.2.3版本 执行聚合报错 Fielddata is disabled on text fields by default

    背景说明 执行<Elasticsearch 权威指南>的示例,在执行聚合查询的时候,报错 Fielddata is disabled on text fields by default. ...

  8. MongoDB启动报错:Unrecognized option: storage try 'mongod --help' for more information(已解决)

    问题说明: 今天在使用配置文件方式启动MongoDB时,一直启动失败,报错显示:Unrecognized option: storage try 'mongod --help' for more in ...

  9. Serilog记录MongoDB日志报错:requires the binary sub type to be UuidLegacy, not UuidStandard

    Serilog Serilog是.NET开源结构化日志类库 开源地址:https://github.com/serilog 官网:https://serilog.net/ Serilog能做什么: 记 ...

随机推荐

  1. wind.onload和$(document).ready()的区别例示

    例子: <html> <script type="text/javascript" src="jquery-1.7.1.min.js"> ...

  2. BZOJ4454: C Language Practice

    Description Input 第一行输入一个正整数T(T<=85),表示测试数据的组数. 每组数据第一行包含两个正整数n,m(1<=n,m<=2000),表示序列的长度. 第二 ...

  3. Spring MVC Maven 环境搭建与部署

    本文简单演示了本地开发环境的搭建.项目出包.部署运行.HelloWorld,以及部分注意事项. 起初的玩法:先安装Eclipse,然后分别下载并安装Maven.spring的插件,再进行工程模式转换, ...

  4. .NET易忘备留 ORACLE存储过程调用

    1.Oracle存储过程调用[返回信息,单体或者列表] public IResult FundBuild(string partnerId,string userId, DateTime beginD ...

  5. 【android应用市场】android应用市场集合

    一.举例 1.酷市场 2.apkpure 国外的应用市场,可不用FQ,没有google play的一些限制 相当于google play的镜像,可以下载google play的应用 3.360手机助手 ...

  6. Qt Load and Save Image Dialog 加载图片对话框

    在Qt中,我们想要通过对话框来打开某一个图片,可以通过使用QFileDialog来快速实现,参见以下代码: QString fileName = QFileDialog::getOpenFileNam ...

  7. insertAfter的兼容性

    function insertAfter(newElement,targetElement){    var parent=targetElement.parentNode;    if(parent ...

  8. sublime 3 user Settings

    { "auto_complete": true, "auto_complete_delay": 50, "auto_complete_size_lim ...

  9. PHP第三方登录 -- 微博登录

    进化史 博客园 首页 新随笔 联系 管理 订阅 随笔- 9  文章- 0  评论- 0  php 实现qq第三方登录 学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 ht ...

  10. php课程---随机数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...