zoukankan      html  css  js  c++  java
  • 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)。

    最后把要统计的数据给搞出来了,喜大普奔。。。。

  • 相关阅读:
    10.RobotFramework: 获取当前时间戳
    9.接口自动化-自定义关键字、接口设计规范
    8.接口自动化-RequestLibrary库的介绍与示例讲解
    7.接口自动化-环境常用库搭建
    6.数据库操作(DatabaseLibrary)与常见问题
    5.远程服务器操作(SSHLibrary)
    概率密度与概率分布函数
    Linux安装包类型
    随机变量与随机过程
    hosts文件
  • 原文地址:https://www.cnblogs.com/viaiu/p/4848445.html
Copyright © 2011-2022 走看看