mongodb 查询数据默认占用最大内存为100M,如果查询涉及到大量数据进行$group、$sort时会抛出类似以下的异常:

Received error in response from ins-mongodb-:: { $err: \"Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in.\", code: 16945

秩序要在查询时添加{allowDiskUse: true}可以将查询结果保存到临时文件进行排序分组,来查看结果。

例如:

db.visits.aggregate(
[
{"$match":{"_id":{"$gte":ObjectId("5ae73d800000000000000000"),"$lt":ObjectId("5b101c000000000000000000")}}},
{"$group":{"_id":"$sip","cid":{"$addToSet":"$cid"},"count":{"$sum":1}}},
{"$project":{"_id":"$_id","cid":"$cid","cidcount":{"$size":"$cid"},"count":"$count"}},
{"$sort":{cidcount:-1}}
],{allowDiskUse: true}
)

mongodb 超出内存限制的更多相关文章

  1. MongoDB与内存

    来自  http://www.ttlsa.com/mongodb/mongodb-and-memory/# 但凡初次接触MongoDB的人,无不惊讶于它对内存的贪得无厌,至于个中缘由,我先讲讲Linu ...

  2. 如何限制mongodb数据库内存占用量方法

    多实例下: 可以通过绑定cpu,来防止多实例相互干扰. mongodb的内存也可以限制主,防止全部内存都被一个实例占据. ulimit -s 4096 && ulimit -m 314 ...

  3. php查询mysql时,报超出内存错误(select count(distinct))时

    学时服务器查询教练所带人数时,使用select count(distinct(u_STRNO))时报超出内存错误.后参考“mysqld-nt: Out of memory解决方法”http://jin ...

  4. 使用cgroups限制MongoDB的内存使用

    cgroups,其名称源自控制组群(control groups)的简写,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等). 这个项目最早是由Goo ...

  5. mongodb 对内存的占用监控 ——mongostat,linux系统可用的内存是free + buffers + cached

    刚开始使用mongodb的时候,不太注意mongodb的内存使用,但通过查资料发现mongodb对内存的占用是巨大的,在本地测试服务器中,8G的内存居然被占用了45%.汗呀. 本文就来剖析一下mong ...

  6. mongodb WiredTiger 内存分配

    转载自勤奋的小青蛙 mongodb占用内存非常高,这是因为官方为了提升存储的效率,设计就这么设计的. 但是大部分的个人开发者所购买的服务器内存并没有那么大,所以,我们需要配置下MongoDB的内存缓存 ...

  7. MongoDB 的内存使用限制

    本文将简述一下MongoDB的内存限制问题 1. 使用Docker限制 当我们使用docker创建mongo 容器时,可通过使用以下参数,对mongo可以使用的资源进行限制 内存限制 参数 简介 -m ...

  8. mongodb聚合内存不足解决方案

    原因:mongodb每一个文档默认只有16M.聚合的结果是一个BSON文档,当超过16M大小时,就会报内存不够错误. exceeded memory limit for $group.but didn ...

  9. 纹理,这次没用Shader头文件,但是没有报“超出内存”的错误,不知道为什么

    #include <iostream> using namespace std; //using std::cout; using std::cin; using std::endl; # ...

随机推荐

  1. 『TensorFlow』线程控制器类&变量作用域

    线程控制器类 线程控制器原理: 监视tensorflow所有后台线程,有异常出现(主要是越界,资源循环完了)时,其should_stop方法就会返回True,而它的request_stop方法则用于要 ...

  2. sublime-代码提示

    py的话安装这个插件: Anaconda user配置 { "python_interpreter":"F:/PY3/python.exe", "su ...

  3. MongoDB AUTH结果验证及开启方法

          创建超级管理员(root)和普通用户(gxpt) #创建超级管理员(root) RS1:PRIMARY> use admin RS1:PRIMARY> db.createUse ...

  4. pytoch word_language_model 代码阅读

    参考代码地址:https://github.com/pytorch/examples/tree/master/word_language_model /word_language_model/data ...

  5. Oracle判断周末

    有些业务场景下会有择出周末的需求,具体判断语句如下: 1.SELECT TO_CHAR(TO_DATE(DATA_DATE,'YYYY-MM-DD),'D') FROM DUAL; 如果DATA_DA ...

  6. XenServer7.6命令行导出导入虚拟机(迁移)

    一:命令行方法导出虚拟机(先关闭虚拟机) 1.1:打印虚拟机列表 xe vm-list uuid ( RO) : 43dfac04-515e-7769-b2d2-444d4b7cb198 name-l ...

  7. 入门项目 A5-3 interface-user 第三方接口3

    ''' 用户接口层 ''' # 导入数据库包下面的处理数据模,为了使用其内部名称空间 from db import db_handler # 注册接口函数,接收名字与密码两个参数 def regist ...

  8. spring ico

    代码非常简单.如果缺少jar包将导致报错. 需要5个spring jar包和1个logging jar,否则报错. org.springframework.asm.jarorg.springframe ...

  9. .net webapi跨域方法整理

    方法一 在Web.Config里面加上了配置信息: <httpProtocol> <customHeaders> <add name="Access-Contr ...

  10. ngnix 500错误原因分析

    参考http://www.cnblogs.com/huqiang/p/5333975.html