mongodbsort超过最大限制怎么用

问题描述

当我对一个没有建索引的字段做find,然后做sort的时候,可能触发sort的size的32MB限制,例如:

db.getCollection('Hotel').find({"time_stamp":{"$lte":1485878400}}).sort({"time_stamp": -1})

错误如下:

Error: error: {

"$err" : "Executor error: Overflow sort stage buffered data usage of 33558548 bytes exceeds internal 

limit of 33554432 bytes",

"code" : 17144

}

两种解决方法

解决方法一:对需要排序的字段建索引

db.stotal.ensureIndex({'type': -1})

解决方法二:修改默认配置,把sort时可以用的内存设置大点:

db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320})

这两种解决方法各有利弊:

方法一:增加了索引会导致数据写入变慢,存储占用变多;

方法二:不建索引修改默认配置,会导致sort的时候占用更多的内存。

网,大量的免费MongoDB入门教程,欢迎在线学习!

以上是 mongodbsort超过最大限制怎么用 的全部内容, 来源链接: utcz.com/z/538179.html

回到顶部