Azure CosmosDB。存储过程中的继续令牌长度

Posted

技术标签:

【中文标题】Azure CosmosDB。存储过程中的继续令牌长度【英文标题】:Azure CosmosDB. Continuation token length in stored procedure 【发布时间】:2020-09-24 15:45:41 【问题描述】:

我有一个 REST API,它旨在使用类似 OData 的语法查询存储在 CosmosDB 中的文档。我正在返回带有块的文件。 IE。我正在设置 $top=10 并获得 10 个带有延续令牌的文档。这个延续令牌是从存储过程中返回的:

var accepted = collection.queryDocuments(collection.getSelfLink(),
            sql, requestOptions,
            function (err, documents, responseOptions) 
                // ...
                // put responseOptions.continuation into response body
            );

问题是,如果延续令牌很长(即 6k 个字符),我将其传递到 URL 中,无法处理 URL,并且我无法访问我的端点(得到 404)。据我了解,更复杂的初始 SQL 查询是延续令牌越长,无法设置其长度。

有解决办法吗?

【问题讨论】:

【参考方案1】:

不要认为这个问题会有现成的解决方案。您可以尝试在您的服务层实现微型 url 类型的框架。 https://www.geeksforgeeks.org/how-to-design-a-tiny-url-or-url-shortener/

【讨论】:

以上是关于Azure CosmosDB。存储过程中的继续令牌长度的主要内容,如果未能解决你的问题,请参考以下文章

在哪里存储以及如何在客户端维护来自 cosmos db 的延续令牌

您应该为 VNET 专用终结点的每个 Azure 资源(CosmosDB、KeyVault、存储)创建多个子网还是只使用一个?

无法使用 azure JavaScript 函数和 Key Vault 机密检索 cosmosDB 数据

无法使用microsoft.azure.documentdb.core更新Azure CosmosDB中的文档

从 Azure Block 到 CosmosDB 的 Azure 数据工厂复制速度很慢

Azure 逻辑应用:使用 GROUP BY 的查询不支持继续令牌