如何获得&在javascript中设置Cosmos Db延续令牌 [英] How to get & set Cosmos Db continuation token in javascript

查看:82
本文介绍了如何获得&在javascript中设置Cosmos Db延续令牌的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用适用于CosmosDb的V2 Javascript SDK,我从数据库获得了前10项:

Using the V2 Javascript SDK for CosmosDb, I'm getting the TOP 10 items from the db:

var query = "SELECT TOP 10 * FROM People"

const querySpec = {
    query: query
};

var result = await container.items.query(querySpec).toArray();

如何获得接下来的10个结果的延续令牌以及如何在下一个结果中设置它查询?

How do I get the continuation token for the next 10 results and how do I set it in my next query?

推荐答案

Emre。请参考我的工作示例代码:

Emre. Please refer to my working sample code:

const cosmos = require('@azure/cosmos');
const CosmosClient = cosmos.CosmosClient;

const endpoint = "https://***.documents.azure.com:443/";                 // Add your endpoint
const masterKey = "***";  // Add the masterkey of the endpoint
const client = new CosmosClient({ endpoint, auth: { masterKey } });
const databaseId = "db";
const containerId = "coll";

async function run() {
    const { container, database } = await init();
    const querySpec = {
        query: "SELECT r.id,r._ts FROM root r"
    };
    const queryOptions  = {
        maxItemCount : 1
    }
   const queryIterator = await container.items.query(querySpec,queryOptions);
    while (queryIterator.hasMoreResults()) {
        const { result: results, headers } = await queryIterator.executeNext();
        console.log(results)
        console.log(headers)

        if (results === undefined) {
            // no more results
            break;
        }   
    }
}

async function init() {
    const { database } = await client.databases.createIfNotExists({ id: databaseId });
    const { container } = await database.containers.createIfNotExists({ id: containerId });
    return { database, container };
}

run().catch(err => {
    console.error(err);
});

您可以在 console.log(标题)中找到延续令牌

更多详情请参阅源代码

更新答案:

Update Answer:

请参考我的示例函数:

    async function queryItems1(continuationToken) {
    const { container, database } = await init();
    const querySpec = {
        query: "SELECT r.id,r._ts FROM root r"
    };
    const queryOptions  = {
        maxItemCount : 2,
        continuation : continuationToken
    };

    const queryIterator = await container.items.query(querySpec,queryOptions);
    if (queryIterator.hasMoreResults()) {
        const { result: results, headers } = await queryIterator.executeNext();
        console.log(results)
        const token = headers['x-ms-continuation'];
        if(token){
            await queryItems1(token);
        }       
    }   
}

这篇关于如何获得&在javascript中设置Cosmos Db延续令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆