mongodb - 使用聚合时出现Mongo错误: sort exceeded memory limit

标签 mongodb aggregation-framework memory-limit

当我使用聚合排序时,出现错误代码 16819 的 mongo 错误 exceeded memory limit

我使用的是 mongo 2.6。

查询如下:

db.BASE_TABLE_CREATION_ExecuteHiveScript_26_V0.aggregate([
     { "$project" : { "visitor_localdate" : 1 , "_id" : 0}}, 
     { "$sort" : { "visitor_localdate" : -1}}
])

最佳答案

默认情况下,MongoDB 中的聚合发生在内存中,管道阶段有 100 Mb RAM 的限制。看起来你已经超过了这个阈值。要处理大型数据集,您应该启用聚合管道阶段以将数据写入临时文件。使用 allowDiskUse选项:

db.BASE_TABLE_CREATION_ExecuteHiveScript_26_V0.aggregate([
    { "$project" : { "visitor_localdate" : 1 , "_id" : 0}},
    { "$sort" : { "visitor_localdate" : -1}}
], { "allowDiskUse" : true })

关于mongodb - 使用聚合时出现Mongo错误: sort exceeded memory limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375017/

相关文章:

MongoDB elemmatch数组中的多个元素

algorithm - 生成一个不在给定的四十亿中的整数

php - memory_limit : How does it work?

c++ - 无限大小的整数?

django - sshtunnel.BaseSSHTunnelForwarder 无法与 SSH 网关建立 session

mongodb - 我如何让 Mongo 3.0/WiredTiger 将我的整个数据库加载到 RAM 中?

MongoDB - 一次聚合多个变量的最大值/最小值/平均值

node.js - 使用 mongoose 填充到 "join"匹配的子记录

node.js - 使用 mongoose 和 node express 查找一个集合中的所有文档,更改数据并保存到另一个集合中

mongodb - Mongodb $group 动态表达式