mongodb too much data for sort() with no index

系统报错如下:

org.springframework.data.mongodb.UncategorizedMongoDbException:too much data for sort() with no
index. add an index or specify a smaller limit;nested exception is com.mongodb.MongoException: too
much data for sort() with no index...



具体原因就是在J,ava代码里面,查询mongo db的时候,有类似如下的操作。即在findAll的时候,还想按某个字段排个序。如下:

    /**
     * findAll查mongo数据库,并且带顺序的查,得到返回值集合
     *
     * @return List<Model>
     */
    public List<Model> findAll() {
        return dao.findAll(new Sort(Direction.ASC, "title"));
    }

mongo db 默认就建了一个index,就id的索引,

index即索引的作用就是加快查询的速度。因为数,据,库里没有title这个字段的索引。

所以,在查询大量数据的时候,这个排序的代码,就要异常啦。
所以,findAll就只是简单的查所有就好了,至于排序的工作,还是在J,ava代码里面单独实现的好。
不然,系统数据量小的时候,这个方法没问题。
但是一旦数据量忽然变大的话,代码的定时炸弹就启动啦。





相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页