Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MongoDB排序溢出_Spring_Mongodb_Spring Data_Spring Data Mongodb - Fatal编程技术网

Spring MongoDB排序溢出

Spring MongoDB排序溢出,spring,mongodb,spring-data,spring-data-mongodb,Spring,Mongodb,Spring Data,Spring Data Mongodb,我的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"); 标准c=。。。; 查询q=新查询(c).

我的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");
标准c=。。。;
查询q=新查询(c).限制(10).跳过(跳过);
q=q.with(新排序(Sort.DEFAULT_DIRECTION.DESC,“fromDate”);
List results=mongoTemplate.find(q,Event.class,“Event”);
当skip=40时,此代码工作正常

但是,当skip=260时,我得到以下错误:

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


在对大量记录进行排序时,mongoDB似乎存在溢出问题。有人能建议如何处理这个问题吗

Mongodb对内存排序有32mb的限制:详情如下:


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

谢谢你的建议!我们可以用@index设置注释多个字段吗?因为根据用户请求,我们需要按不同字段进行排序。(有时我们需要按日期排序…而在另一种情况下,我们需要按标题排序…等等)。是的,我相信这就是您正在寻找的。(除非您只需要创建多个单索引,这是非常好的做法)