2016-07-25 50 views
1

是否可以使用DocumentDB .NET SDK來針對返回所有匹配文檔的數據庫運行異步查詢?是否有可能爲所有文檔異步查詢DocumentDB(即不分頁)?

答案回答這個問題的StackOverflow:Querying Azure DocumentDB with ExecuteNextAsync returns fewer than MaxItemCount表示:

有一個查詢多久就DocumentDB執行限制。
...
如果碰到這些限制,那麼可能會返回部分結果集。

我知道,它可以通過遍歷分頁結果像這樣來克服上述限制:(source

List<Family> families = new List<Family>(); 

FeedOptions options = new FeedOptions { MaxItemCount = 1 }; 

var query = client.CreateDocumentQuery<Family>(collectionLink, options).AsDocumentQuery(); 

while (query.HasMoreResults) 
{ 
    foreach (Family family in await query.ExecuteNextAsync()) 
    { 
     families.Add(family); 
    } 
} 

我的問題是 - 這需要循環?可能有一種更優雅的方法來告訴SDK返回所有可用的結果(無分頁)?

+0

我從來沒有使用它,因爲我管理自己的頁面帶有水上接口,但我認爲指定者()方法做了所要求的。 –

+0

你可以嘗試使用'CreateStoredProcedureQueryy'。 像'client.CreateStoredProcedureQuery(collectionLink,「Select * from myColleciton」);'。 – vikscool

回答

2

您擁有的循環是跨多個請求執行枚舉的最佳方式,因爲DocumentDB中的每個請求都有有限的時間執行。

你可以用擴展方法包裝這個代碼,使它變得方便。

這是一個很好的建議,爲DocumentDB隊以添加該支持 - https://github.com/Azure/azure-documentdb-dotnet/issues

相關問題