我使用 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检查的情况下识别我们到达了终点。