Cosmos DB SQL API Node.js - 连续令牌

问题描述 投票:1回答:1

我使用以下代码来获取使用分页的文档列表。代码工作正常。但是如果我想从客户端发送它以进行分页,我该如何找到延续令牌。

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)
        }
    });
});

};

azure-cosmosdb
1个回答
1
投票

你可以在responseHeaders参数中找到延续令牌,请尝试使用responseHeaders ['x-ms-continuation']来抓取它。

如 :

continuationToken = responseHeaders ['x-ms-continuation'];

然后,您可以将令牌作为参数传递给execute方法。

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

如果continuationToken为null,则表示没有更多结果。

你可以参考我之前的案例:How to get & set Cosmos Db continuation token in javascript

希望它能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.