【问题标题】:Pagination of Stargate document API for CassandraCassandra 的 Stargate 文档 API 的分页
【发布时间】:2021-11-12 14:07:45
【问题描述】:

Cassandra 的 Stargate 文档 API 提供页面大小以返回受页面大小限制的所有文档。页面大小的最大值为 20。如何获取下一个文档;即21到30?

Reading Documents using Stargate API for Cassandra

【问题讨论】:

    标签: cassandra cassandra-3.0 stargate-oss


    【解决方案1】:

    因此,当您针对最初的 20 个运行查询时,您将在返回的 JSON 中获得一个名为 pageState。这是page-size=5 的示例:

    % curl --request GET \
      --url https://$ASTRA_DB_ID-$ASTRA_DB_REGION.apps.astra.datastax.com/api/rest/v2/namespaces/$ASTRA_DB_KEYSPACE/collections/hello_docs\?page-size\=5 \
      -H "X-Cassandra-Token: $ASTRA_DB_APPLICATION_TOKEN" \
      -H 'Content-Type: application/json'
    {"pageState":"JGNlYjczMDc5LTE1NTItNGQyNS1hM2ExLWE2MzgxNWVlYTAyMADwf_____B_____","data":{
    "58b12778-0efd-466e-89bf-66a4c99adee1":{"author":"Tom Clancy","title":"Red Rabbit"},
    "77fe8690-f8d4-43b8-b1c9-a328318d4eae":{"author":"Tom Clancy","title":"Every Man a Tiger"},
    "3177f86c-a633-4302-92a5-de4c15ab5840":{"author":"Tom Clancy","title":"Rainbow Six"},
    "cefc7117-fc73-47b8-a965-099cf3a59269":{"author":"Tom Clancy","title":"Clear and Present Danger"},
    "ceb73079-1552-4d25-a3a1-a63815eea020":{"author":"Tom Clancy","title":"The Cardinal of the Kremlin"}}}%
    

    当我想要获取接下来的 5 个文档时,我重新运行相同的查询,但将 page-state 参数与之前的结果返回的值一起添加:

    &page-state\=JGNlYjczMDc5LTE1NTItNGQyNS1hM2ExLWE2MzgxNWVlYTAyMADwf_____B_____
    

    当我将它添加到原始查询中时,它看起来像这样:

    % curl --request GET \
    --url https://$ASTRA_DB_ID-$ASTRA_DB_REGION.apps.astra.datastax.com/api/rest/v2/namespaces/$ASTRA_DB_KEYSPACE/collections/hello_docs\?page-size\=5\&page-state\=JGNlYjczMDc5LTE1NTItNGQyNS1hM2ExLWE2MzgxNWVlYTAyMADwf_____B_____ \
    -H "X-Cassandra-Token: $ASTRA_DB_APPLICATION_TOKEN" \
    -H 'Content-Type: application/json'
    
     {"pageState":"JDUxMzVmMzFiLWY4NDYtNGZiNy1iNmFmLTk2YmU2OTMyNzlmMQDwf_____B_____","data":{
    "f42cc7d8-81ba-41d5-b5c9-c13f8d0009c6":{"author":"Tom Clancy","title":"Patriot Games"},
    "46df315f-7208-4859-af1c-96c4953f70c7":{"author":"Tom Clancy","title":"Without Remorse"},
    "b23af545-4fdc-4ac5-907a-7132d7429d26":{"author":"Tom Clancy","title":"The Hunt for Red October"},
    "c6d55ecd-1631-4d5c-8320-d111662f8837":{"other":"This is nonsensical stuff.","title":"Some Stuff"},
    "5135f31b-f846-4fb7-b6af-96be693279f1":{"author":"Tom Clancy","title":"The Sum of all Fears"}}}%
    

    tl;dr;

    添加结果中返回的pageState,你应该得到下一个20。

    编辑 20211011

    Stargate 文档已更新详细信息以解决此过程。

    Retrieving all documents with Paging

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 2021-11-29
      • 2021-11-09
      • 2015-11-05
      • 1970-01-01
      • 2012-06-22
      • 2013-05-21
      • 2019-01-22
      • 2020-05-27
      相关资源
      最近更新 更多