出於某種原因,我不能讓分頁正常工作爲天青DocumentDB無法獲得尋呼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
澄清 - 您期望得到多少結果?從這個問題我假設你期望超過20個文件?介紹一些示例數據? –
@aliuy嗨,我期待約975結果。我認爲SelectMany有一個限制。看起來像只能「翻頁」頂層文檔,而不是對象的子項(即r.Results是MyResults中的子數組)。雖然,我可能是錯的 – fenix2222