SpringMongoDB排序溢出

Spring MongoDB sorting overflow

我的 mongoDB 中有 300 条记录,我使用以下代码进行查询:

Criteria c = ...;
Query q = new Query(c).limit(10).skip(skip);
q = q.with(new Sort(Sort.DEFAULT_DIRECTION.DESC,"fromDate"));
List<Event> results = mongoTemplate.find(q, Event.class, "Event");

当 skip = 40 时,这段代码工作正常。

但是,当 skip = 260 时,出现以下错误:

33564943 字节的溢出排序阶段缓冲数据使用超过了 33554432 字节的内部限制;

似乎mongoDB在对大量记录进行排序时出现溢出问题。谁能建议如何处理这个问题?

Mongodb 对内存排序有 32mb 的限制:此处有详细信息:

mongo sort limit

您应该为您的排序字段编制索引,这将解决问题。