限制每页的记录数和 DynamoDB 中的页数
Limiting the records per page and the number of pages in DynamoDB
我正在使用 DynamoDBEnchancedAsyncClient
通过 GSI
和 pagination
查询 DynamoDB
。下面是我用来实现相同目的的代码。我想限制每页的项目数和发送给 Flux
订阅者的页数
DynamoDBAsyncIndex<Customer> secindex= dynamodbasyncenhancedclient.table(Customer, Customer_Schema).index(GSI_INDEX_NAME)
SdkPublisher<Page<Customer>> query = secindex.query(QueryEnhancedRequest.builder().queryConditional(queryconditional)).limit(2).build()
Flux.from(PagePublisher.create(query).items().limit(5))
我所做的一些观察是
QueryEnhancedRequest
中的limit(2)限制了每页的项目数为2。我通过订阅SDKPublisher
查看了它。
但是我想限制发送给上述 Flux 订阅者的页面,但是 limit(5)
没有给出想要的结果。有什么方法可以限制从上面 flux
?
发出的页数
是否有任何方法可以限制从 DDB
为特定查询请求获取的页面数量?
调用时
SdkPublisher<Page<Customer>> query = secindex.query(QueryEnhancedRequest.builder().queryConditional(queryconditional)).limit(2).build()
limit(2)
在 PagePublisher
作为 DynamoDbAsyncIndex#query
结果的结果时被调用。为了提供 QueryEnhancedRequest#limit
你应该在 QueryEnhancedRequest.Builder
:
上调用 limit
secindex.query(QueryEnhancedRequest.builder().queryConditional(queryconditional).limit(2).build())
另一方面,PagePublisher.create(query)
结果将是发布者从查询结果页面发出扁平化项目,即将所有页面项目作为结果序列发出。
要设置发射 Page
s 的限制,您应该在查询结果 SdkPublisher<Page<Customer>>
:
上设置 limit
Flux.from(PagePublisher.create(query.limit(5)).items())
我正在使用 DynamoDBEnchancedAsyncClient
通过 GSI
和 pagination
查询 DynamoDB
。下面是我用来实现相同目的的代码。我想限制每页的项目数和发送给 Flux
DynamoDBAsyncIndex<Customer> secindex= dynamodbasyncenhancedclient.table(Customer, Customer_Schema).index(GSI_INDEX_NAME)
SdkPublisher<Page<Customer>> query = secindex.query(QueryEnhancedRequest.builder().queryConditional(queryconditional)).limit(2).build()
Flux.from(PagePublisher.create(query).items().limit(5))
我所做的一些观察是
QueryEnhancedRequest
中的limit(2)限制了每页的项目数为2。我通过订阅SDKPublisher
查看了它。
但是我想限制发送给上述 Flux 订阅者的页面,但是
发出的页数limit(5)
没有给出想要的结果。有什么方法可以限制从上面flux
?是否有任何方法可以限制从
DDB
为特定查询请求获取的页面数量?
调用时
SdkPublisher<Page<Customer>> query = secindex.query(QueryEnhancedRequest.builder().queryConditional(queryconditional)).limit(2).build()
limit(2)
在 PagePublisher
作为 DynamoDbAsyncIndex#query
结果的结果时被调用。为了提供 QueryEnhancedRequest#limit
你应该在 QueryEnhancedRequest.Builder
:
limit
secindex.query(QueryEnhancedRequest.builder().queryConditional(queryconditional).limit(2).build())
另一方面,PagePublisher.create(query)
结果将是发布者从查询结果页面发出扁平化项目,即将所有页面项目作为结果序列发出。
要设置发射 Page
s 的限制,您应该在查询结果 SdkPublisher<Page<Customer>>
:
limit
Flux.from(PagePublisher.create(query.limit(5)).items())