Azure cosmosdb Cosmos DB SQL API Node.js-延续令牌

Azure cosmosdb Cosmos DB SQL API Node.js-延续令牌,azure-cosmosdb,Azure Cosmosdb,我使用以下代码来获取使用分页的文档列表。代码运行良好。但是如果我想从客户端发送延续令牌进行分页,那么如何找到延续令牌呢 function queryCollectionPaging() { return new Promise((resolve, reject) => { function executeNextWithRetry(iterator, callback) { iterator.executeNext(function (err,

我使用以下代码来获取使用分页的文档列表。代码运行良好。但是如果我想从客户端发送延续令牌进行分页,那么如何找到延续令牌呢

function queryCollectionPaging() {  
return new Promise((resolve, reject) => {
    function executeNextWithRetry(iterator, callback) {         
        iterator.executeNext(function (err, results, responseHeaders) {
            if (err) {
                return callback(err, null);
            }
            else {
                documents = documents.concat(results);
                if (iterator.hasMoreResults()) {
                    executeNextWithRetry(iterator, callback);
                }
                else {
                    callback();
                }
            }
        });
    }

    let options = {
        maxItemCount: 1,
        enableCrossPartitionQuery: true
    };

    let documents = []
    let iterator = client.queryDocuments( collectionUrl, 'SELECT r.partitionkey, r.documentid, r._ts FROM root r WHERE r.partitionkey in ("user1", "user2") ORDER BY r._ts', options);

    executeNextWithRetry(iterator, function (err, result) {
        if (err) {
            reject(err)
        }
        else {
            console.log(documents);
            resolve(documents)
        }
    });
});

})

您可以在responseHeaders参数中找到continuation令牌,请尝试使用
responseHeaders['x-ms-continuation']
获取它

例如:

continuationToken = responseHeaders ['x-ms-continuation'];
然后可以将令牌作为参数传递给execute方法

let options = {
        maxItemCount: 1,
        enableCrossPartitionQuery: true,
        continuation : continuationToken
    };
如果
continuationToken
为空,则表示不再有结果

您可以参考我以前的案例:

希望对你有帮助