加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

mongodb 排序内存限制问题如何搞定?

发布时间:2023-08-23 15:21:36 所属栏目:系统 来源:
导读:mongodb 排序内存限制问题如何解决?在对集合执行一个大排序操作(如聚合)时候,出现以下错误:(测试版本:MongoDB 3.0.6),那么这样的情况要如何解决呢?下面是解决办法:

> db.bigdata.aggregate(

{$g
mongodb 排序内存限制问题如何解决?在对集合执行一个大排序操作(如聚合)时候,出现以下错误:(测试版本:MongoDB 3.0.6),那么这样的情况要如何解决呢?下面是解决办法:
 
> db.bigdata.aggregate(
 
 {$group : {_id : "$range", total : { $sum : 1 }}},
 
 {$sort : {total : -1}}
 
);
 
#...
 
 aggregate failed
 
 at Error (<anonymous>)
 
 at doassert (src/mongo/shell/assert.js:11:14)
 
 #...
 
 Error: command failed: {
 
 "errmsg" : "exception: Sort exceeded memory limit of 104857600 bytes,
 
 but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.",
 
 "code" : 16819,
 
 "ok" : 0
 
 }
 
       解决方法
 
       参考文档: Memory Restrictions
 
       在MongoDB中,内排序大内存限制最大为100M,如果执行一个更大的排序,需要使用 allowDiskUse 选项来将数据写到临时文件来排序。在查询语句中添加 allowDiskUse 选项:
 
db.bigdata.aggregate(
 
[
 
 {$group : {_id : "$range", total : { $sum : 1 }}},
 
 {$sort : {total : -1}}
 
],
 
 {allowDiskUse: true}
 
);
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!