1

我使用 Cassandra 中的手动分页功能。

client.eachRow(query, params, options, function (n, row) { 
     // Invoked per each row in all the pages
     console.log("row",row);
  }, function (err, result) {
       if(typeof result !== undefined) {
          pageState = result.pageState;
          console.log("pagestate output : ", pageState);
          if(pageState != null) {
              //
          }
       }
  }
  );

假设我们在表“测试”中有 4 行/条目。

当我尝试使用 fetchsize 作为 '2' 进行查询时,它返回两个带有 result.pageState 的条目,然后我使用相同的 pageState 来查询下一页并成功获取。

但问题是

由于总条目为 4 且获取大小为 2,因此在获取下一页中,我希望 pageState 的第 3 和第 4 条目为空(因为没有更多可用条目)但是,它返回第 3 和第 4 条目与另一个页面状态。

1)在这种情况下:收到的页面状态是下一个值的页面状态(或)最后收到的值的页面状态吗?AFAIK 这是最后收到的值的(第 4 个条目)页面状态,因此为了确定我们到达了最后一个条目,我总是再打一次电话(result.nextpage),如果它未定义,那么我认为没有更多条目可用,我觉得为每个分页再打一个电话是不明智的。

2)如何在不进行result.nextpage检查的情况下识别我们到达了终点。

4

0 回答 0