C# 获取集合CosmosDb中的所有文档

C# 获取集合CosmosDb中的所有文档,c#,azure-cosmosdb,C#,Azure Cosmosdb,我想退回CosmosDb集合中的所有文件 我的代码如下 client.CreateDocumentQuery(UriFactory.CreateDocumentUri(dbName, colName,"id")).ToList(); 它不起作用。我可以找到一份具体的文件,但不是全部 感谢您。CreateDocumentUri为特定于文档的查询创建一个Uri 您需要的是集合中的所有文档,因此您需要创建的是集合Uri。 您可以使用UriFactory.CreateDocumentCollecti

我想退回CosmosDb集合中的所有文件

我的代码如下

 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上。我将把它放在你的答案中,这样我们就有了记录。如果代码不代表你的意思,我道歉&请!谢谢