MongoDB 2.6排序查询的最大限制

时间:2014-06-22 17:40:24

标签: mongodb

使用mongo排序可以分类2百万条记录吗?

从MongoDB文档中,清楚地提到“当排序操作消耗超过32兆字节时,MongoDB会返回错误。”

但我要求对大量记录进行排序。怎么做?

1 个答案:

答案 0 :(得分:4)

这是可能的。文档说明只有当MongoDB在内存中对数据进行排序时才会出现32MB限制,即不使用索引。

  

当排序操作消耗超过32兆字节时,MongoDB   返回错误。要避免此错误,请创建索引   支持排序操作或将sort()与limit()结合使用。   指定的限制必须导致许多文档丢失   在32兆字节的范围内。

我建议您在要使用ensureIndex命令排序的字段上添加索引:

db.coll.ensureIndex({ sortFieldName : 1});

如果您要对多个字段进行排序,则需要在排序字段上添加compound index(索引事项中字段的顺序):

db.coll.ensureIndex({ sortFieldName1 : 1, sortFieldName2 : 1});