Mongodb 我的Mongo查询太大,我';我遇到了内存问题
在执行此查询时,我达到了某种RAM限制,错误如下: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"=>{},
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兆字节
您是否尝试在上使用索引?这将消除这一限制