使用mongo排序可以分类2百万条记录吗?
从MongoDB文档中,清楚地提到“当排序操作消耗超过32兆字节时,MongoDB会返回错误。”
但我要求对大量记录进行排序。怎么做?
答案 0 :(得分:4)
这是可能的。文档说明只有当MongoDB在内存中对数据进行排序时才会出现32MB限制,即不使用索引。
当排序操作消耗超过32兆字节时,MongoDB 返回错误。要避免此错误,请创建索引 支持排序操作或将sort()与limit()结合使用。 指定的限制必须导致许多文档丢失 在32兆字节的范围内。
我建议您在要使用ensureIndex
命令排序的字段上添加索引:
db.coll.ensureIndex({ sortFieldName : 1});
如果您要对多个字段进行排序,则需要在排序字段上添加compound index(索引事项中字段的顺序):
db.coll.ensureIndex({ sortFieldName1 : 1, sortFieldName2 : 1});