MongoDB 2.6排序查询的最大限制

MongoDB 2.6排序查询的最大限制,mongodb,Mongodb,是否可以使用mongo排序对200万条记录进行排序 从MongoDB文档中可以清楚地看到,“当排序操作消耗超过32兆字节时,MongoDB返回一个错误。” 但是我需要对大量的记录进行排序。怎么做?这是可能的。文档指出,只有当MongoDB对内存中的数据进行排序时,即不使用索引时,才会有32MB的限制 当排序操作消耗超过32兆字节时,MongoDB 返回一个错误。要避免此错误,请创建一个索引 支持排序操作或将sort()与limit()结合使用。 指定的限制必须导致大量文档落下 在32兆字节的限制

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

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


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

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

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

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

db.coll.ensureIndex({ sortFieldName : 1});
如果要对多个字段进行排序,则需要在排序的字段上添加一个(索引中字段的顺序):


如果我在_id字段上创建一个索引,那么我将能够对任意数量的记录进行排序,而不会给出限制。如果我错了,请更正。@user3318102\u id上的索引是自动创建的,所以您不需要创建它。您是正确的,如果您在_id字段上排序,您将不会达到32MB的限制。请回答:
db.coll.ensureIndex({ sortFieldName1 : 1, sortFieldName2 : 1});