聚合查询(aggregate)的时候,报错,信息如下
Sort exceeded memory limit of 104857600 bytes,but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.
mongo db查询时报的错,意思是
排序超过了104857600字节的内存限制,
以下这句话博主百度到比较合理的解释
mongo对大数据集进行aggregate集合操作,处理各stage阶段中,为了避免 pipeline 的 stage 的内存使用超过 100 MB 而报错。需要设置allowDiskUse为true使用系统缓存,以临时文件进行存储
直接说解决方案吧,加入{allowDiskUse:true}
注意 以下是 在mongo里面的操作代码,不是在eggjs里的!!!!!!!!!!!!!!!!!!!!!!!!!!!
db.a_log.aggregate([{
"$facet": {
"total": [{
"$count": "total"
}],"data": [{
"$match": {}
},{
"$sort": {
"createdAt": - 1
}
},{
"$skip": 74990
},{
"$limit": 10
}]
}
}],{allowDiskUse:true})
下面这个才是在 eggjs里的操作代码allowDiskUse 位置不一样哦,注意!!!!!!!!!
var results=await m.ctx.model.ALog.aggregate(paramsArr).allowDiskUse(true)//
原文地址:https://blog.csdn.net/xuelang532777032/article/details/127969530
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。