MongoDB 2.6 排序查询的最大限制

Vip*_*pin 3 mongodb

使用 mongo sort 对 200 万条记录进行排序是否可能?

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

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

Chr*_*n P 5

这是可能的。该文档指出,仅当 MongoDB 在内存中对数据进行排序(即不使用索引)时,才会存在 32MB 限制。

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

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

db.coll.ensureIndex({ sortFieldName : 1});
Run Code Online (Sandbox Code Playgroud)

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

db.coll.ensureIndex({ sortFieldName1 : 1, sortFieldName2 : 1});
Run Code Online (Sandbox Code Playgroud)