Mongodb 我的Mongo查询太大,我';我遇到了内存问题

Mongodb 我的Mongo查询太大,我';我遇到了内存问题,mongodb,mongoid,Mongodb,Mongoid,在执行此查询时,我达到了某种RAM限制,错误如下: The operation: #<Moped::Protocol::Query @length=100 @request_id=962 @response_to=0 @op_code=2004 @flags=[] @full_collection_name="test_db.cases" @skip=1650 @limit=150 @selector={"$query"=>{},

在执行此查询时,我达到了某种RAM限制,错误如下:

The operation: #<Moped::Protocol::Query

  @length=100

  @request_id=962

  @response_to=0

  @op_code=2004

  @flags=[]

  @full_collection_name="test_db.cases"

  @skip=1650

  @limit=150

  @selector={"$query"=>{}, "$orderby"=>{"created_at"=>1}}

  @fields=nil>

failed with error 17144: "Runner error: Overflow sort stage buffered data usage of 33555783 bytes exceeds internal limit of 33554432 bytes"


See https://github.com/mongodb/mongo/blob/master/docs/errors.md

for details about this error.
操作:#{},$orderby“=>{”创建于“=>1}}”
@字段=零>
失败,错误为17144:“运行程序错误:溢出排序阶段缓冲数据使用量33555783字节超过33554432字节的内部限制”
看见https://github.com/mongodb/mongo/blob/master/docs/errors.md
有关此错误的详细信息。
我可以想到两种解决方案:

1) 超出缓冲区限制。这需要Mongo2.8,这是一个不稳定的版本,我必须手动安装

2) 把问题分开?大块?这是查询的外观:

upload\u set=Case.all.order\u by(:created\u at.asc)。skip(@set\u skipper)。limit(150)。每个\u片段(5)。到

@每次调用该方法时,set_skipper将增长150

有什么帮助吗?

来自

分类文件

MongoDB只会在以下情况下返回没有索引的字段的排序结果: 排序操作中所有文档的组合大小,再加上 开销小于32兆字节

您是否尝试在上使用索引?这将消除该限制。

分类文件

MongoDB只会在以下情况下返回没有索引的字段的排序结果: 排序操作中所有文档的组合大小,再加上 开销小于32兆字节

您是否尝试在上使用索引?这将消除该限制。

分类文件

MongoDB只会在以下情况下返回没有索引的字段的排序结果: 排序操作中所有文档的组合大小,再加上 开销小于32兆字节

您是否尝试在上使用索引?这将消除该限制。

分类文件

MongoDB只会在以下情况下返回没有索引的字段的排序结果: 排序操作中所有文档的组合大小,再加上 开销小于32兆字节

您是否尝试在上使用索引?这将消除这一限制