C# 获取集合CosmosDb中的所有文档
我想退回CosmosDb集合中的所有文件 我的代码如下C# 获取集合CosmosDb中的所有文档,c#,azure-cosmosdb,C#,Azure Cosmosdb,我想退回CosmosDb集合中的所有文件 我的代码如下 client.CreateDocumentQuery(UriFactory.CreateDocumentUri(dbName, colName,"id")).ToList(); 它不起作用。我可以找到一份具体的文件,但不是全部 感谢您。CreateDocumentUri为特定于文档的查询创建一个Uri 您需要的是集合中的所有文档,因此您需要创建的是集合Uri。 您可以使用UriFactory.CreateDocumentCollecti
client.CreateDocumentQuery(UriFactory.CreateDocumentUri(dbName, colName,"id")).ToList();
它不起作用。我可以找到一份具体的文件,但不是全部
感谢您。CreateDocumentUri为特定于文档的查询创建一个Uri 您需要的是集合中的所有文档,因此您需要创建的是集合Uri。 您可以使用
UriFactory.CreateDocumentCollectionUri(DatabaseName,CollectionName)代码>
不过,请注意你的练习。
对于返回大量文档的操作,建议您使用.AsDocumentQuery()
方法,然后执行ExecuteNextAsync
而query.HasMoreResults
您应该这样做,因为如果您只在IQueryable
上使用.ToList()
,CosmosDB SDK会同步地在线路上运行,这将对应用程序的性能不利
这是MSDN中关于如何做到这一点的示例
using (var queryable = client.CreateDocumentQuery<Book>(
collectionLink,
new FeedOptions { MaxItemCount = 10 })
.Where(b => b.Title == "War and Peace")
.AsDocumentQuery())
{
while (queryable.HasMoreResults)
{
foreach(Book b in await queryable.ExecuteNextAsync<Book>())
{
// Iterate through books
}
}
}
使用(var queryable=client.CreateDocumentQuery(
收集链接,
新的FeedOptions{MaxItemCount=10})
.其中(b=>b.标题==“战争与和平”)
.AsDocumentQuery())
{
while(queryable.HasMoreResults)
{
foreach(wait queryable.ExecuteNextAsync()中的书b)
{
//翻阅书籍
}
}
}
您的链接已失效&不在archive.org上。我将把它放在你的答案中,这样我们就有了记录。如果代码不代表你的意思,我道歉&请!谢谢