如何在查询中传递 pageToken 以获取下一组视图?
Posted
技术标签:
【中文标题】如何在查询中传递 pageToken 以获取下一组视图?【英文标题】:How do I pass pageToken in a query to get the next set of views? 【发布时间】:2020-07-16 13:25:25 【问题描述】:我试图通过在查询选项中添加 maxResults 作为 2 来获得 pageToken 作为响应, 当我在 maxResults 选项中使用该 pageToken (我从以前的代码中得到的响应)时,我没有得到下一组结果, 我得到一个空数组作为响应,我们应该如何将 pageToken 与 query 和 maxResults 一起传递以获取下一组结果?
如果我在选项中使用 pageToken->
const BigQuery = require('@google-cloud/bigquery')
const projectId = 'bigqueryproject1-279307'
const keyFilename = './credentials/client_secrets.json'
async function query ()
const bigqueryClient = new BigQuery( projectId, keyFilename )
// Queries the U.S. given names dataset for the state of Texas.
const query = 'SELECT * FROM bigqueryproject1-279307.abcdef12k3.__TABLES__ WHERE type = 2'
const options =
maxResults: 2,
pageToken: 'BE6GBKCXOMAQAAASA4EAAEEAQCAAKGQEBABBAARAWCXBK==='
const job = await bigqueryClient.query(query, options)
console.log('******job*****', job)
query()
结果=>
[ [],
null,
kind: 'bigquery#getQueryResultsResponse',
etag: 'taA51Ro5PrAMPypjzfMwCg==',
schema: fields: [Array] ,
jobReference:
projectId: 'bigqueryproject1-279307',
jobId: 'a212f570-0d92-4208-92ac-71aa2da82364',
location: 'US' ,
totalRows: '0',
totalBytesProcessed: '0',
jobComplete: true,
cacheHit: false ]
我得到的是空数组作为响应,而不是得到下一个 2 视图
【问题讨论】:
【参考方案1】:我承认pageToken
参数在jobs.query
Bigquery API method 的通用查询request 主体中不存在,因此您也无法在相关的bigquery.query(query, options, callback)
中找到它NodeJS Bigquery 客户端库class 方法也是如此。
为了使用户查询结果分页达到预期效果,您可以考虑在代码中调整job.getQueryResults() 方法,根据定义的maxResults
和pageToken
属性从查询Job 中获取某些行.
【讨论】:
以上是关于如何在查询中传递 pageToken 以获取下一组视图?的主要内容,如果未能解决你的问题,请参考以下文章
Bigquery 查询返回“pagetoken missing” - 查询适用于其他表
如何将一个mongodb请求的结果同步传递到下一个请求的值?