Azure 是否可以异步查询DocumentDB中的所有文档(即无分页)?
是否可以使用使对返回所有匹配文档的DB运行异步查询 此StackOverflow问题的答案:表示: 查询在DocumentDB上执行的时间有限制。Azure 是否可以异步查询DocumentDB中的所有文档(即无分页)?,azure,azure-cosmosdb,Azure,Azure Cosmosdb,是否可以使用使对返回所有匹配文档的DB运行异步查询 此StackOverflow问题的答案:表示: 查询在DocumentDB上执行的时间有限制。 … 如果达到这些限制,则可能会返回部分结果集 我知道,通过对分页结果进行如下迭代,可以克服上述限制:() 列表族=新列表(); FeedOptions=new FeedOptions{MaxItemCount=1}; var query=client.CreateDocumentQuery(collectionLink,options).AsDocu
…
如果达到这些限制,则可能会返回部分结果集 我知道,通过对分页结果进行如下迭代,可以克服上述限制:()
列表族=新列表();
FeedOptions=new FeedOptions{MaxItemCount=1};
var query=client.CreateDocumentQuery(collectionLink,options).AsDocumentQuery();
while(query.HasMoreResults)
{
foreach(wait query.ExecuteNextAsync()中的族)
{
家庭。添加(家庭);
}
}
我的问题是-这个循环是必要的吗?是否有一种更优雅的方式来告诉SDK返回所有可用的结果(无需分页)?您拥有的循环是跨多个请求执行枚举的最佳方式,因为DocumentDB中的每个请求都有一个限时执行 您可以将此代码包装在扩展方法中以方便使用 这是DocumentDB团队添加此支持的一个好建议-
我从未使用过它,因为我用一个懒惰的界面来管理我自己的分页,但我认为toArray()方法满足了我的要求。你能用
CreateStoredProcedureyy
试试吗。像client.CreateStoredProcedureQuery(collectionLink,“从MyCollectionon中选择*)代码>。
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);
}
}