gpt4 book ai didi

c# - 无法在 Azure DocumentDB 中进行分页

转载 作者:行者123 更新时间:2023-11-30 17:43:59 25 4
gpt4 key购买 nike

由于某种原因,我无法使 Azure DocumentDB 的分页正常工作

这是一个代码片段

var finalResults = new List<MyResult>();
// Here I am setting max page size to be 10
var options = new FeedOptions { MaxItemCount = 10 };
var query = client.CreateDocumentQuery<MyResultItem>(collection.SelfLink, options)
.SelectMany(r => r.Results)
.Where(r => r.Result > 75)
.Select(r => r)
.AsDocumentQuery();
// it only works 1 iteration and next iteration I always get HasMoreResults = false
// if I set MaxItemCount = 20, then I get 20 only
while (query.HasMoreResults)
{
var pagedResults = query.ExecuteNextAsync<MyResult>().Result;
foreach (var pagedResult in pagedResults)
{
finalResults.Add(pagedResult);
}
}

无论我为 MaxItemCount 设置什么值,它都只会获取那么多项目,而不会获取下一批,所以我得到 query.HasMoreResults 在第二次迭代时总是返回 false。我找不到问题出在哪里

更新:

Json结构如下:

.NET 对象名称 MyResultItem

{
Id: "xxxxxxxxxxxxxxxxxxxxx",
Name: "xxxxxxxxxxxxxxx",
Results: [
{ Id: 1, Result: 123 },
{ Id: 2, Result: 40 },
{ Id: 3, Result: 75 }
]
}

我正在尝试获取“结果”的平面列表,其中结果 > 75

最佳答案

这似乎是 DocumentDB 的一个错误;当子数组中的元素数量小于请求的页面大小时,延续标记对于 selectmany(和连接)会出现错误行为。

我在 MSDN forums 上发现了类似的帖子关于这个主题。

目前正在修复。

同时,您可以尝试通过增加页面大小(例如将其设置为最大值 1,000)来解决此问题。

关于c# - 无法在 Azure DocumentDB 中进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com