c# - 为什么 RU 的数量会改变我的 CosmosDB 结果集大小?
问题描述
这让我完全困惑。
上下文:我在 CosmosDB 上运行一个存储过程,如果有多个数据“页面”(其中至少会有几个),它会返回结果集以及延续令牌。我的收藏中共有 65,000 条记录。对于最后一个“页面”,延续令牌应该(并且确实)从 CosmosDB 返回为 NULL,表明我的整个集合已返回。
我的问题: 当我将 CosmosDB 集合的 RU 设置为最小值 (400) 时,数据集以及下一页的延续标记都可以正常运行,并且一切正常。一旦我提高了我的 RU(为了更快的查询执行),前几个“页面”的延续标记就可以通过,但随后在整个数据集的一半左右突然返回为 NULL。
这是我的存储过程:
function count(continuationToken) {
var filterQuery = 'select c.id from c where c.Type = 0';
var collection = getContext().getCollection();
var maxResult = 900000;
var result = [];
tryQuery(continuationToken);
function tryQuery(nextContinuationToken) {
var responseOptions = { continuation: nextContinuationToken, pageSize: maxResult };
if (result.length >= maxResult || !query(responseOptions)) {
setBody(nextContinuationToken);
}
}
function query(responseOptions) {
return collection.queryDocuments(collection.getSelfLink(), filterQuery, responseOptions, onReadDocuments);
}
function onReadDocuments(err, docFeed, responseOptions) {
if (err) {
throw 'Error while reading document: ' + err;
}
result.push(docFeed);
if (responseOptions.continuation) {
tryQuery(responseOptions.continuation);
} else {
setBody(null);
}
}
function setBody(continuationToken) {
var body = { records: result, continuationToken: continuationToken };
getContext().getResponse().setBody(body);
}
}
有人对这里可能出了什么问题有任何想法吗?对我来说,RU 应该对从 CosmosDB 集合返回的数据量产生影响是没有意义的。
任何帮助将不胜感激,谢谢!
解决方案
推荐阅读
- reactjs - 有什么方法可以使用模板组件/页面与 Gatsby 一起创建动态 slug?
- javascript - 开始向下滚动后更改菜单背景不透明度
- javascript - 对话框关闭时重置按钮标签
- c# - 使用 try catch 语句来清除文本框
- r - 在 R 中创建模型时,使用公式进行模型规范会产生错误
- reactjs - 如何在 useEffect 中包含 state/props 而不会成为触发器?
- d3.js - d3.js 分组条形图:文本未显示在条形图上
- http-headers - Base64图片内容安全策略错误
- sockets - 是否可以在不断开连接的 TCP 套接字的情况下进行部署而不停机?
- javascript - 学习如何创建搜索菜单来过滤链接