使用 mongo sort 对 200 万条记录进行排序是否可能?
从MongoDB文档中,明确提到“当排序操作消耗超过32兆字节时,MongoDB返回错误”。
但我需要对大量记录进行排序。怎么做?
这是可能的。该文档指出,仅当 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)
| 归档时间: |
|
| 查看次数: |
2603 次 |
| 最近记录: |