如何列出所有对象以响应使用 cloudant java 客户端的查询?

How to list all the objects in response to a query using cloudant java client?

我正在使用 cloudant-client 2.17.0。我有一个分区数据库,想查询以获取所有匹配它的文档。

com.cloudant.client.api.Database class的查询方法return是一个QueryResult对象,里面有书签字段。我找不到任何将此书签作为参数的查询方法。那么所有的查询方法(com.cloudant.client.api.Database 的)默认情况下 return 所有文档,或者是否有某处的查询方法将此书签作为参数?如果有这样的方法,如何获取页面大小? Cloudant 文档提到,检查某个页面是否是结果的最后一页的正确方法是检查结果大小是否 < 页面大小。

您可以在 QueryBuilder 帮助程序 class 中设置书签并将其传递给数据库 query 方法。 这是来自 java-cloudant API documentation:

的 QueryBuilder 示例
 QueryBuilder queryBuilder = db.query(new QueryBuilder(and(
   gt("Movie_year", 1960),
   eq("Person_name", "Alec Guinness"))).
   sort(Sort.desc("Movie_year")).
   fields("Movie_name", "Movie_year").
   bookmark("some-bookmark").
   limit(2);

然后将 query 变量传递给 db.query,其中 dbcom.cloudant.client.api.Database

QueryResult<Movie> moviesPage = db.query(queryBuilder.build(), Movie.class);

此测试用例展示了如何使用 bookmark 获取每页的所有文档:https://github.com/cloudant/java-cloudant/blob/master/cloudant-client/src/test/java/com/cloudant/tests/IndexTests.java#L254-L278.