解决MongoDB 排序超过内存限制的问题

发布时间 - 2026-01-11 02:26:10    点击率:

对集合执行一个大排序操作(如聚合),出现以下错误:(测试版本: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}
);

总结

以上所述是小编给大家介绍的解决MongoDB 排序超过内存限制的问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# mongodb排序超内存限制  # mongodb排序  # MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)  # .Net Core如何对MongoDB执行多条件查询  # 浅谈java实现mongoDB的多条件查询  # Thinkphp使用mongodb数据库实现多条件查询方法  # java操作mongodb基础(查询 排序 输出list)  # 详解MongoDB的条件查询和排序  # 小编  # 在此  # 更大  # 给大家  # 写到  # 解决方法  # 所述  # 给我留言  # 感谢大家  # 临时文件  # 疑问请  # 有任何  # 文档  # Error  # lt  # anonymous  # failed  # sort  # sum  # doassert 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel如何创建自定义中间件?(Middleware代码示例)  个人摄影网站制作流程,摄影爱好者都去什么网站?  海南网站制作公司有哪些,海口网是哪家的?  大连网站制作公司哪家好一点,大连买房网站哪个好?  5种Android数据存储方式汇总  如何快速上传建站程序避免常见错误?  如何利用DOS批处理实现定时关机操作详解  php 三元运算符实例详细介绍  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  如何快速搭建支持数据库操作的智能建站平台?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel如何发送系统通知?(Notification渠道示例)  如何用5美元大硬盘VPS安全高效搭建个人网站?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  如何在搬瓦工VPS快速搭建网站?  如何在橙子建站中快速调整背景颜色?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  网站制作壁纸教程视频,电脑壁纸网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel如何实现多对多模型关联?(Eloquent教程)  详解Huffman编码算法之Java实现  javascript如何操作浏览器历史记录_怎样实现无刷新导航  Laravel如何处理异常和错误?(Handler示例)  Android使用GridView实现日历的简单功能  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  详解CentOS6.5 安装 MySQL5.1.71的方法  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  高防服务器如何保障网站安全无虞?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何在VPS电脑上快速搭建网站?  Laravel安装步骤详细教程_Laravel环境搭建指南  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  JavaScript常见的五种数组去重的方式  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  利用JavaScript实现拖拽改变元素大小  浅谈Javascript中的Label语句  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  python中快速进行多个字符替换的方法小结  Laravel如何创建自定义Facades?(详细步骤)