python - 从 Cosmos DB 查询时延续令牌出现问题
问题描述
从 CosmosDB 查询项目时,我遇到了继续问题。
我已经尝试过以下解决方案,但没有成功。我只能查询页面的前 10 个结果,即使我得到的令牌不是NULL
.
令牌的大小为10733 bytes
,看起来像这样。
{"token":"+RID:gtQwAJ9KbavOAAAAAAAAAA==#RT:1#TRC:10#FPP:AggAAAAAAAAAAGoAAAAAKAAAAAAAAAAAAADCBc6AEoAGgAqADoASgAaACoAOgBKABoAKgA6AE4AHgAuAD4ASgAeACoAPgBOAB4ALgA+AE4AHgAqAD4ASgAeAC4APgBOAB4ALgA+AE4AIgA2AEYAFgAmADYARgAaACYAPgBKABYAKgA6AE4AHgAuAD4ATgAeAC4APgBOAB4ALgA+AE4AIgAuAD4ATgAeAC4APgBOACIAMgA+AFIAIgAyAD4AUgAmADIAQgAWACIALgBCABIAIgAyAEIAEgAiADIAQgAOACYANgBKAB4AJgA6AEYAGgAqADoATgAeAC4APgB....etc...etc","range":{"min":"","max":"05C1BF3FB3CFC0"}}
代码看起来像这样。功能QueryDocuments
不起作用。相反,我不得不使用QueryItems
.
options = {}
options['enableCrossPartitionQuery'] = True
options['maxItemCount'] = 10
q = client.QueryItems(collection_link, query, options)
results_1 = q._fetch_function(options)
#this is a string representing a JSON object
token = results_1[1]['x-ms-continuation']
data = list(q._fetch_function({'maxItemCount':10,'enableCrossPartitionQuery':True, 'continuation':token}))
有针对这个的解决方法吗?谢谢你的帮助。
解决方案
请使用pydocumentdb包并参考下面的示例代码。
from pydocumentdb import document_client
endpoint = "https://***.documents.azure.com:443/";
primaryKey = "***";
client = document_client.DocumentClient(endpoint, {'masterKey': primaryKey})
collection_link = "dbs/db/colls/coll"
query = "select c.id from c"
query_with_optional_parameters = [];
q = client.QueryDocuments(collection_link, query, {'maxItemCount': 2})
results_1 = q._fetch_function({'maxItemCount': 2})
print(results_1)
token = results_1[1]['x-ms-continuation']
results_2 = q._fetch_function({'maxItemCount': 2, 'continuation': token})
print(results_2)
输出:
推荐阅读
- python - Matplotlib:如何仅使用 NAN 值进行绘图?
- powershell - 如何将媒体图像作为格式图像 Powershell 复制到剪贴板
- php - 如何使用 PhpStorm 配置调试模式
- c# - 从 Visual Studio 在 Github.com 中打开一个文件
- css - 是否可以在不使用 CSS 中的媒体查询的情况下保持段落的宽度(桌面 - 移动)?
- python - 如何在django中重定向到另一个包含ID的页面
- r - 使用箱线图对大型数据集进行可视化
- database - 我的播种机没有在我的数据库中存储信息
- javascript - 单击特定按钮时如何禁用数据表中的排序
- azure - 在 Azure 应用服务的 IIS 日志中记录 TLS 相关数据