Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Java Spring data mongodb:如何在findAll方法中定义游标限制_Java_Spring_Mongodb_Spring Data Mongodb - Fatal编程技术网

Java Spring data mongodb:如何在findAll方法中定义游标限制

Java Spring data mongodb:如何在findAll方法中定义游标限制,java,spring,mongodb,spring-data-mongodb,Java,Spring,Mongodb,Spring Data Mongodb,我正在使用SpringDataMongoDB地理空间标准,我的要求是我必须使用项目的坐标和半径找到用户。当管理员添加项目时,它将对满足条件的用户进行操作。现在,我正在使用mongotemplate的findAll方法。但在未来,用户可能会达到50000,所以我认为findAll对它来说效率不高。我正在寻找findAll中设置的限制,或者在SpringDataMongoDB中使用的任何替代方法 我的问题是 List<User> users = mongoTemplate.find(

我正在使用SpringDataMongoDB地理空间标准,我的要求是我必须使用项目的坐标和半径找到用户。当管理员添加项目时,它将对满足条件的用户进行操作。现在,我正在使用mongotemplate的findAll方法。但在未来,用户可能会达到
50000
,所以我认为
findAll
对它来说效率不高。我正在寻找findAll中设置的限制,或者在SpringDataMongoDB中使用的任何替代方法

我的问题是

List<User> users = mongoTemplate.find(
                new Query(Criteria.where("address.coordinates").within(
                        new Circle(longitude, latitude, radius))), User.class);
但现在的问题是,我将如何在本例中使用我在示例中提到的地理空间查询


Thanks

您可以使用
Query
提供的
skip
limit
方法,如下所示:

List<User> users = mongoTemplate
                .find(new Query(Criteria.where("address.coordinates")
                        .within(new Circle(longitude, latitude, radius)))
                        .limit(1000), 
                        User.class);
List users=mongoTemplate
.find(新查询(条件.where(“地址.坐标”)
.在(新圆(经度、纬度、半径))内
.限值(1000),
用户类别);

您还可以使用
with(Pageable Pageable)
方法,最后但并非最不重要的是,您可以使用Mongo存储库及其
findAll(Pageable Pageable)
方法

我知道限制和跳过,但它们在后台工作中如何工作?
List<User> users = mongoTemplate
                .find(new Query(Criteria.where("address.coordinates")
                        .within(new Circle(longitude, latitude, radius)))
                        .limit(1000), 
                        User.class);