从数据库Azure DocumentDB接收所有文档

时间:2017-04-24 10:55:15

标签: c# azure

我尝试从Azure DocumentDB数据库接收所有文档。我找到了表明我的问题的例子,但它没有用。 https://github.com/Microsoft/azure-docs/blob/master/articles/documentdb/documentdb-sharding.md#create-queries-against-all-collections-in-the-database

我的代码(C#):

'\n'

和我var client = new DocumentClient(new Uri(endPointUrl), authorizationKey); var database = await client.ReadDatabaseAsync(UriFactory.CreateDatabaseUri(DatabaseId)); var documents = client.CreateDocumentQuery(database.Resource.SelfLink).ToList(); 例外:

  

消息:{"服务器无法解析网址。"};   错误:{{"代码":" NotFound","消息":"服务器无法解析网址。& #34; }};

那么,我可以在一次查询中收到来自多个馆藏的文件吗?

1 个答案:

答案 0 :(得分:2)

  

那么,我可以在一次查询中收到来自多个馆藏的文件吗?

简单的答案是否定的。你不能这样做。

您需要做的是首先列出数据库中的所有集合,然后分别从每个集合中获取文档。对于每个集合,您将需要执行单独的查询。

另外,请注意,如果一个集合中有超过1000个文档,则单个请求将返回最多1000个文档。在这种情况下,您将从服务中获得延续令牌。您需要使用此延续令牌重新发送查询,以从该集合中获取下一组数据。您将重复此过程,直到时间服务返回延迟令牌作为响应。缺少延续令牌意味着已经获取了集合中的所有文档。然后,您可以转到数据库中的下一个集合(如果您正在执行顺序执行)。